/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
!function (a, b) {
    "object" == typeof module && "object" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function (a) {
        if (!a.document) throw new Error("jQuery requires a window with a document");
        return b(a)
    } : b(a)
}("undefined" != typeof window ? window : this, function (a, b) {
    var c = [], d = c.slice, e = c.concat, f = c.push, g = c.indexOf, h = {}, i = h.toString, j = h.hasOwnProperty,
        k = {}, l = "1.11.1", m = function (a, b) {
            return new m.fn.init(a, b)
        }, n = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, o = /^-ms-/, p = /-([\da-z])/gi, q = function (a, b) {
            return b.toUpperCase()
        };
    m.fn = m.prototype = {
        jquery: l, constructor: m, selector: "", length: 0, toArray: function () {
            return d.call(this)
        }, get: function (a) {
            return null != a ? 0 > a ? this[a + this.length] : this[a] : d.call(this)
        }, pushStack: function (a) {
            var b = m.merge(this.constructor(), a);
            return b.prevObject = this, b.context = this.context, b
        }, each: function (a, b) {
            return m.each(this, a, b)
        }, map: function (a) {
            return this.pushStack(m.map(this, function (b, c) {
                return a.call(b, c, b)
            }))
        }, slice: function () {
            return this.pushStack(d.apply(this, arguments))
        }, first: function () {
            return this.eq(0)
        }, last: function () {
            return this.eq(-1)
        }, eq: function (a) {
            var b = this.length, c = +a + (0 > a ? b : 0);
            return this.pushStack(c >= 0 && b > c ? [this[c]] : [])
        }, end: function () {
            return this.prevObject || this.constructor(null)
        }, push: f, sort: c.sort, splice: c.splice
    }, m.extend = m.fn.extend = function () {
        var a, b, c, d, e, f, g = arguments[0] || {}, h = 1, i = arguments.length, j = !1;
        for ("boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), "object" == typeof g || m.isFunction(g) || (g = {}), h === i && (g = this, h--); i > h; h++) if (null != (e = arguments[h])) for (d in e) a = g[d], c = e[d], g !== c && (j && c && (m.isPlainObject(c) || (b = m.isArray(c))) ? (b ? (b = !1, f = a && m.isArray(a) ? a : []) : f = a && m.isPlainObject(a) ? a : {}, g[d] = m.extend(j, f, c)) : void 0 !== c && (g[d] = c));
        return g
    }, m.extend({
        expando: "jQuery" + (l + Math.random()).replace(/\D/g, ""), isReady: !0, error: function (a) {
            throw new Error(a)
        }, noop: function () {
        }, isFunction: function (a) {
            return "function" === m.type(a)
        }, isArray: Array.isArray || function (a) {
            return "array" === m.type(a)
        }, isWindow: function (a) {
            return null != a && a == a.window
        }, isNumeric: function (a) {
            return !m.isArray(a) && a - parseFloat(a) >= 0
        }, isEmptyObject: function (a) {
            var b;
            for (b in a) return !1;
            return !0
        }, isPlainObject: function (a) {
            var b;
            if (!a || "object" !== m.type(a) || a.nodeType || m.isWindow(a)) return !1;
            try {
                if (a.constructor && !j.call(a, "constructor") && !j.call(a.constructor.prototype, "isPrototypeOf")) return !1
            } catch (c) {
                return !1
            }
            if (k.ownLast) for (b in a) return j.call(a, b);
            for (b in a) ;
            return void 0 === b || j.call(a, b)
        }, type: function (a) {
            return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? h[i.call(a)] || "object" : typeof a
        }, globalEval: function (b) {
            b && m.trim(b) && (a.execScript || function (b) {
                a.eval.call(a, b)
            })(b)
        }, camelCase: function (a) {
            return a.replace(o, "ms-").replace(p, q)
        }, nodeName: function (a, b) {
            return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase()
        }, each: function (a, b, c) {
            var d, e = 0, f = a.length, g = r(a);
            if (c) {
                if (g) {
                    for (; f > e; e++) if (d = b.apply(a[e], c), d === !1) break
                } else for (e in a) if (d = b.apply(a[e], c), d === !1) break
            } else if (g) {
                for (; f > e; e++) if (d = b.call(a[e], e, a[e]), d === !1) break
            } else for (e in a) if (d = b.call(a[e], e, a[e]), d === !1) break;
            return a
        }, trim: function (a) {
            return null == a ? "" : (a + "").replace(n, "")
        }, makeArray: function (a, b) {
            var c = b || [];
            return null != a && (r(Object(a)) ? m.merge(c, "string" == typeof a ? [a] : a) : f.call(c, a)), c
        }, inArray: function (a, b, c) {
            var d;
            if (b) {
                if (g) return g.call(b, a, c);
                for (d = b.length, c = c ? 0 > c ? Math.max(0, d + c) : c : 0; d > c; c++) if (c in b && b[c] === a) return c
            }
            return -1
        }, merge: function (a, b) {
            var c = +b.length, d = 0, e = a.length;
            while (c > d) a[e++] = b[d++];
            if (c !== c) while (void 0 !== b[d]) a[e++] = b[d++];
            return a.length = e, a
        }, grep: function (a, b, c) {
            for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++) d = !b(a[f], f), d !== h && e.push(a[f]);
            return e
        }, map: function (a, b, c) {
            var d, f = 0, g = a.length, h = r(a), i = [];
            if (h) for (; g > f; f++) d = b(a[f], f, c), null != d && i.push(d); else for (f in a) d = b(a[f], f, c), null != d && i.push(d);
            return e.apply([], i)
        }, guid: 1, proxy: function (a, b) {
            var c, e, f;
            return "string" == typeof b && (f = a[b], b = a, a = f), m.isFunction(a) ? (c = d.call(arguments, 2), e = function () {
                return a.apply(b || this, c.concat(d.call(arguments)))
            }, e.guid = a.guid = a.guid || m.guid++, e) : void 0
        }, now: function () {
            return +new Date
        }, support: k
    }), m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function (a, b) {
        h["[object " + b + "]"] = b.toLowerCase()
    });

    function r(a) {
        var b = a.length, c = m.type(a);
        return "function" === c || m.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a
    }

    var s = function (a) {
        var b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u = "sizzle" + -new Date, v = a.document, w = 0,
            x = 0, y = gb(), z = gb(), A = gb(), B = function (a, b) {
                return a === b && (l = !0), 0
            }, C = "undefined", D = 1 << 31, E = {}.hasOwnProperty, F = [], G = F.pop, H = F.push, I = F.push, J = F.slice,
            K = F.indexOf || function (a) {
                for (var b = 0, c = this.length; c > b; b++) if (this[b] === a) return b;
                return -1
            },
            L = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
            M = "[\\x20\\t\\r\\n\\f]", N = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", O = N.replace("w", "w#"),
            P = "\\[" + M + "*(" + N + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + O + "))|)" + M + "*\\]",
            Q = ":(" + N + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + P + ")*)|.*)\\)|)",
            R = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"),
            S = new RegExp("^" + M + "*," + M + "*"), T = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"),
            U = new RegExp("=" + M + "*([^\\]'\"]*?)" + M + "*\\]", "g"), V = new RegExp(Q),
            W = new RegExp("^" + O + "$"), X = {
                ID: new RegExp("^#(" + N + ")"),
                CLASS: new RegExp("^\\.(" + N + ")"),
                TAG: new RegExp("^(" + N.replace("w", "w*") + ")"),
                ATTR: new RegExp("^" + P),
                PSEUDO: new RegExp("^" + Q),
                CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)", "i"),
                bool: new RegExp("^(?:" + L + ")$", "i"),
                needsContext: new RegExp("^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M + "*\\)|)(?=[^-]|$)", "i")
            }, Y = /^(?:input|select|textarea|button)$/i, Z = /^h\d$/i, $ = /^[^{]+\{\s*\[native \w/,
            _ = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ab = /[+~]/, bb = /'|\\/g,
            cb = new RegExp("\\\\([\\da-f]{1,6}" + M + "?|(" + M + ")|.)", "ig"), db = function (a, b, c) {
                var d = "0x" + b - 65536;
                return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320)
            };
        try {
            I.apply(F = J.call(v.childNodes), v.childNodes), F[v.childNodes.length].nodeType
        } catch (eb) {
            I = {
                apply: F.length ? function (a, b) {
                    H.apply(a, J.call(b))
                } : function (a, b) {
                    var c = a.length, d = 0;
                    while (a[c++] = b[d++]) ;
                    a.length = c - 1
                }
            }
        }

        function fb(a, b, d, e) {
            var f, h, j, k, l, o, r, s, w, x;
            if ((b ? b.ownerDocument || b : v) !== n && m(b), b = b || n, d = d || [], !a || "string" != typeof a) return d;
            if (1 !== (k = b.nodeType) && 9 !== k) return [];
            if (p && !e) {
                if (f = _.exec(a)) if (j = f[1]) {
                    if (9 === k) {
                        if (h = b.getElementById(j), !h || !h.parentNode) return d;
                        if (h.id === j) return d.push(h), d
                    } else if (b.ownerDocument && (h = b.ownerDocument.getElementById(j)) && t(b, h) && h.id === j) return d.push(h), d
                } else {
                    if (f[2]) return I.apply(d, b.getElementsByTagName(a)), d;
                    if ((j = f[3]) && c.getElementsByClassName && b.getElementsByClassName) return I.apply(d, b.getElementsByClassName(j)), d
                }
                if (c.qsa && (!q || !q.test(a))) {
                    if (s = r = u, w = b, x = 9 === k && a, 1 === k && "object" !== b.nodeName.toLowerCase()) {
                        o = g(a), (r = b.getAttribute("id")) ? s = r.replace(bb, "\\$&") : b.setAttribute("id", s), s = "[id='" + s + "'] ", l = o.length;
                        while (l--) o[l] = s + qb(o[l]);
                        w = ab.test(a) && ob(b.parentNode) || b, x = o.join(",")
                    }
                    if (x) try {
                        return I.apply(d, w.querySelectorAll(x)), d
                    } catch (y) {
                    } finally {
                        r || b.removeAttribute("id")
                    }
                }
            }
            return i(a.replace(R, "$1"), b, d, e)
        }

        function gb() {
            var a = [];

            function b(c, e) {
                return a.push(c + " ") > d.cacheLength && delete b[a.shift()], b[c + " "] = e
            }

            return b
        }

        function hb(a) {
            return a[u] = !0, a
        }

        function ib(a) {
            var b = n.createElement("div");
            try {
                return !!a(b)
            } catch (c) {
                return !1
            } finally {
                b.parentNode && b.parentNode.removeChild(b), b = null
            }
        }

        function jb(a, b) {
            var c = a.split("|"), e = a.length;
            while (e--) d.attrHandle[c[e]] = b
        }

        function kb(a, b) {
            var c = b && a,
                d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || D) - (~a.sourceIndex || D);
            if (d) return d;
            if (c) while (c = c.nextSibling) if (c === b) return -1;
            return a ? 1 : -1
        }

        function lb(a) {
            return function (b) {
                var c = b.nodeName.toLowerCase();
                return "input" === c && b.type === a
            }
        }

        function mb(a) {
            return function (b) {
                var c = b.nodeName.toLowerCase();
                return ("input" === c || "button" === c) && b.type === a
            }
        }

        function nb(a) {
            return hb(function (b) {
                return b = +b, hb(function (c, d) {
                    var e, f = a([], c.length, b), g = f.length;
                    while (g--) c[e = f[g]] && (c[e] = !(d[e] = c[e]))
                })
            })
        }

        function ob(a) {
            return a && typeof a.getElementsByTagName !== C && a
        }

        c = fb.support = {}, f = fb.isXML = function (a) {
            var b = a && (a.ownerDocument || a).documentElement;
            return b ? "HTML" !== b.nodeName : !1
        }, m = fb.setDocument = function (a) {
            var b, e = a ? a.ownerDocument || a : v, g = e.defaultView;
            return e !== n && 9 === e.nodeType && e.documentElement ? (n = e, o = e.documentElement, p = !f(e), g && g !== g.top && (g.addEventListener ? g.addEventListener("unload", function () {
                m()
            }, !1) : g.attachEvent && g.attachEvent("onunload", function () {
                m()
            })), c.attributes = ib(function (a) {
                return a.className = "i", !a.getAttribute("className")
            }), c.getElementsByTagName = ib(function (a) {
                return a.appendChild(e.createComment("")), !a.getElementsByTagName("*").length
            }), c.getElementsByClassName = $.test(e.getElementsByClassName) && ib(function (a) {
                return a.innerHTML = "<div class='a'></div><div class='a i'></div>", a.firstChild.className = "i", 2 === a.getElementsByClassName("i").length
            }), c.getById = ib(function (a) {
                return o.appendChild(a).id = u, !e.getElementsByName || !e.getElementsByName(u).length
            }), c.getById ? (d.find.ID = function (a, b) {
                if (typeof b.getElementById !== C && p) {
                    var c = b.getElementById(a);
                    return c && c.parentNode ? [c] : []
                }
            }, d.filter.ID = function (a) {
                var b = a.replace(cb, db);
                return function (a) {
                    return a.getAttribute("id") === b
                }
            }) : (delete d.find.ID, d.filter.ID = function (a) {
                var b = a.replace(cb, db);
                return function (a) {
                    var c = typeof a.getAttributeNode !== C && a.getAttributeNode("id");
                    return c && c.value === b
                }
            }), d.find.TAG = c.getElementsByTagName ? function (a, b) {
                return typeof b.getElementsByTagName !== C ? b.getElementsByTagName(a) : void 0
            } : function (a, b) {
                var c, d = [], e = 0, f = b.getElementsByTagName(a);
                if ("*" === a) {
                    while (c = f[e++]) 1 === c.nodeType && d.push(c);
                    return d
                }
                return f
            }, d.find.CLASS = c.getElementsByClassName && function (a, b) {
                return typeof b.getElementsByClassName !== C && p ? b.getElementsByClassName(a) : void 0
            }, r = [], q = [], (c.qsa = $.test(e.querySelectorAll)) && (ib(function (a) {
                a.innerHTML = "<select msallowclip=''><option selected=''></option></select>", a.querySelectorAll("[msallowclip^='']").length && q.push("[*^$]=" + M + "*(?:''|\"\")"), a.querySelectorAll("[selected]").length || q.push("\\[" + M + "*(?:value|" + L + ")"), a.querySelectorAll(":checked").length || q.push(":checked")
            }), ib(function (a) {
                var b = e.createElement("input");
                b.setAttribute("type", "hidden"), a.appendChild(b).setAttribute("name", "D"), a.querySelectorAll("[name=d]").length && q.push("name" + M + "*[*^$|!~]?="), a.querySelectorAll(":enabled").length || q.push(":enabled", ":disabled"), a.querySelectorAll("*,:x"), q.push(",.*:")
            })), (c.matchesSelector = $.test(s = o.matches || o.webkitMatchesSelector || o.mozMatchesSelector || o.oMatchesSelector || o.msMatchesSelector)) && ib(function (a) {
                c.disconnectedMatch = s.call(a, "div"), s.call(a, "[s!='']:x"), r.push("!=", Q)
            }), q = q.length && new RegExp(q.join("|")), r = r.length && new RegExp(r.join("|")), b = $.test(o.compareDocumentPosition), t = b || $.test(o.contains) ? function (a, b) {
                var c = 9 === a.nodeType ? a.documentElement : a, d = b && b.parentNode;
                return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d)))
            } : function (a, b) {
                if (b) while (b = b.parentNode) if (b === a) return !0;
                return !1
            }, B = b ? function (a, b) {
                if (a === b) return l = !0, 0;
                var d = !a.compareDocumentPosition - !b.compareDocumentPosition;
                return d ? d : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & d || !c.sortDetached && b.compareDocumentPosition(a) === d ? a === e || a.ownerDocument === v && t(v, a) ? -1 : b === e || b.ownerDocument === v && t(v, b) ? 1 : k ? K.call(k, a) - K.call(k, b) : 0 : 4 & d ? -1 : 1)
            } : function (a, b) {
                if (a === b) return l = !0, 0;
                var c, d = 0, f = a.parentNode, g = b.parentNode, h = [a], i = [b];
                if (!f || !g) return a === e ? -1 : b === e ? 1 : f ? -1 : g ? 1 : k ? K.call(k, a) - K.call(k, b) : 0;
                if (f === g) return kb(a, b);
                c = a;
                while (c = c.parentNode) h.unshift(c);
                c = b;
                while (c = c.parentNode) i.unshift(c);
                while (h[d] === i[d]) d++;
                return d ? kb(h[d], i[d]) : h[d] === v ? -1 : i[d] === v ? 1 : 0
            }, e) : n
        }, fb.matches = function (a, b) {
            return fb(a, null, null, b)
        }, fb.matchesSelector = function (a, b) {
            if ((a.ownerDocument || a) !== n && m(a), b = b.replace(U, "='$1']"), !(!c.matchesSelector || !p || r && r.test(b) || q && q.test(b))) try {
                var d = s.call(a, b);
                if (d || c.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d
            } catch (e) {
            }
            return fb(b, n, null, [a]).length > 0
        }, fb.contains = function (a, b) {
            return (a.ownerDocument || a) !== n && m(a), t(a, b)
        }, fb.attr = function (a, b) {
            (a.ownerDocument || a) !== n && m(a);
            var e = d.attrHandle[b.toLowerCase()],
                f = e && E.call(d.attrHandle, b.toLowerCase()) ? e(a, b, !p) : void 0;
            return void 0 !== f ? f : c.attributes || !p ? a.getAttribute(b) : (f = a.getAttributeNode(b)) && f.specified ? f.value : null
        }, fb.error = function (a) {
            throw new Error("Syntax error, unrecognized expression: " + a)
        }, fb.uniqueSort = function (a) {
            var b, d = [], e = 0, f = 0;
            if (l = !c.detectDuplicates, k = !c.sortStable && a.slice(0), a.sort(B), l) {
                while (b = a[f++]) b === a[f] && (e = d.push(f));
                while (e--) a.splice(d[e], 1)
            }
            return k = null, a
        }, e = fb.getText = function (a) {
            var b, c = "", d = 0, f = a.nodeType;
            if (f) {
                if (1 === f || 9 === f || 11 === f) {
                    if ("string" == typeof a.textContent) return a.textContent;
                    for (a = a.firstChild; a; a = a.nextSibling) c += e(a)
                } else if (3 === f || 4 === f) return a.nodeValue
            } else while (b = a[d++]) c += e(b);
            return c
        }, d = fb.selectors = {
            cacheLength: 50,
            createPseudo: hb,
            match: X,
            attrHandle: {},
            find: {},
            relative: {
                ">": {dir: "parentNode", first: !0},
                " ": {dir: "parentNode"},
                "+": {dir: "previousSibling", first: !0},
                "~": {dir: "previousSibling"}
            },
            preFilter: {
                ATTR: function (a) {
                    return a[1] = a[1].replace(cb, db), a[3] = (a[3] || a[4] || a[5] || "").replace(cb, db), "~=" === a[2] && (a[3] = " " + a[3] + " "), a.slice(0, 4)
                }, CHILD: function (a) {
                    return a[1] = a[1].toLowerCase(), "nth" === a[1].slice(0, 3) ? (a[3] || fb.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])), a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && fb.error(a[0]), a
                }, PSEUDO: function (a) {
                    var b, c = !a[6] && a[2];
                    return X.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && V.test(c) && (b = g(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3))
                }
            },
            filter: {
                TAG: function (a) {
                    var b = a.replace(cb, db).toLowerCase();
                    return "*" === a ? function () {
                        return !0
                    } : function (a) {
                        return a.nodeName && a.nodeName.toLowerCase() === b
                    }
                }, CLASS: function (a) {
                    var b = y[a + " "];
                    return b || (b = new RegExp("(^|" + M + ")" + a + "(" + M + "|$)")) && y(a, function (a) {
                        return b.test("string" == typeof a.className && a.className || typeof a.getAttribute !== C && a.getAttribute("class") || "")
                    })
                }, ATTR: function (a, b, c) {
                    return function (d) {
                        var e = fb.attr(d, a);
                        return null == e ? "!=" === b : b ? (e += "", "=" === b ? e === c : "!=" === b ? e !== c : "^=" === b ? c && 0 === e.indexOf(c) : "*=" === b ? c && e.indexOf(c) > -1 : "$=" === b ? c && e.slice(-c.length) === c : "~=" === b ? (" " + e + " ").indexOf(c) > -1 : "|=" === b ? e === c || e.slice(0, c.length + 1) === c + "-" : !1) : !0
                    }
                }, CHILD: function (a, b, c, d, e) {
                    var f = "nth" !== a.slice(0, 3), g = "last" !== a.slice(-4), h = "of-type" === b;
                    return 1 === d && 0 === e ? function (a) {
                        return !!a.parentNode
                    } : function (b, c, i) {
                        var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling", q = b.parentNode,
                            r = h && b.nodeName.toLowerCase(), s = !i && !h;
                        if (q) {
                            if (f) {
                                while (p) {
                                    l = b;
                                    while (l = l[p]) if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) return !1;
                                    o = p = "only" === a && !o && "nextSibling"
                                }
                                return !0
                            }
                            if (o = [g ? q.firstChild : q.lastChild], g && s) {
                                k = q[u] || (q[u] = {}), j = k[a] || [], n = j[0] === w && j[1], m = j[0] === w && j[2], l = n && q.childNodes[n];
                                while (l = ++n && l && l[p] || (m = n = 0) || o.pop()) if (1 === l.nodeType && ++m && l === b) {
                                    k[a] = [w, n, m];
                                    break
                                }
                            } else if (s && (j = (b[u] || (b[u] = {}))[a]) && j[0] === w) m = j[1]; else while (l = ++n && l && l[p] || (m = n = 0) || o.pop()) if ((h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) && ++m && (s && ((l[u] || (l[u] = {}))[a] = [w, m]), l === b)) break;
                            return m -= e, m === d || m % d === 0 && m / d >= 0
                        }
                    }
                }, PSEUDO: function (a, b) {
                    var c, e = d.pseudos[a] || d.setFilters[a.toLowerCase()] || fb.error("unsupported pseudo: " + a);
                    return e[u] ? e(b) : e.length > 1 ? (c = [a, a, "", b], d.setFilters.hasOwnProperty(a.toLowerCase()) ? hb(function (a, c) {
                        var d, f = e(a, b), g = f.length;
                        while (g--) d = K.call(a, f[g]), a[d] = !(c[d] = f[g])
                    }) : function (a) {
                        return e(a, 0, c)
                    }) : e
                }
            },
            pseudos: {
                not: hb(function (a) {
                    var b = [], c = [], d = h(a.replace(R, "$1"));
                    return d[u] ? hb(function (a, b, c, e) {
                        var f, g = d(a, null, e, []), h = a.length;
                        while (h--) (f = g[h]) && (a[h] = !(b[h] = f))
                    }) : function (a, e, f) {
                        return b[0] = a, d(b, null, f, c), !c.pop()
                    }
                }), has: hb(function (a) {
                    return function (b) {
                        return fb(a, b).length > 0
                    }
                }), contains: hb(function (a) {
                    return function (b) {
                        return (b.textContent || b.innerText || e(b)).indexOf(a) > -1
                    }
                }), lang: hb(function (a) {
                    return W.test(a || "") || fb.error("unsupported lang: " + a), a = a.replace(cb, db).toLowerCase(), function (b) {
                        var c;
                        do if (c = p ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-"); while ((b = b.parentNode) && 1 === b.nodeType);
                        return !1
                    }
                }), target: function (b) {
                    var c = a.location && a.location.hash;
                    return c && c.slice(1) === b.id
                }, root: function (a) {
                    return a === o
                }, focus: function (a) {
                    return a === n.activeElement && (!n.hasFocus || n.hasFocus()) && !!(a.type || a.href || ~a.tabIndex)
                }, enabled: function (a) {
                    return a.disabled === !1
                }, disabled: function (a) {
                    return a.disabled === !0
                }, checked: function (a) {
                    var b = a.nodeName.toLowerCase();
                    return "input" === b && !!a.checked || "option" === b && !!a.selected
                }, selected: function (a) {
                    return a.parentNode && a.parentNode.selectedIndex, a.selected === !0
                }, empty: function (a) {
                    for (a = a.firstChild; a; a = a.nextSibling) if (a.nodeType < 6) return !1;
                    return !0
                }, parent: function (a) {
                    return !d.pseudos.empty(a)
                }, header: function (a) {
                    return Z.test(a.nodeName)
                }, input: function (a) {
                    return Y.test(a.nodeName)
                }, button: function (a) {
                    var b = a.nodeName.toLowerCase();
                    return "input" === b && "button" === a.type || "button" === b
                }, text: function (a) {
                    var b;
                    return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase())
                }, first: nb(function () {
                    return [0]
                }), last: nb(function (a, b) {
                    return [b - 1]
                }), eq: nb(function (a, b, c) {
                    return [0 > c ? c + b : c]
                }), even: nb(function (a, b) {
                    for (var c = 0; b > c; c += 2) a.push(c);
                    return a
                }), odd: nb(function (a, b) {
                    for (var c = 1; b > c; c += 2) a.push(c);
                    return a
                }), lt: nb(function (a, b, c) {
                    for (var d = 0 > c ? c + b : c; --d >= 0;) a.push(d);
                    return a
                }), gt: nb(function (a, b, c) {
                    for (var d = 0 > c ? c + b : c; ++d < b;) a.push(d);
                    return a
                })
            }
        }, d.pseudos.nth = d.pseudos.eq;
        for (b in {radio: !0, checkbox: !0, file: !0, password: !0, image: !0}) d.pseudos[b] = lb(b);
        for (b in {submit: !0, reset: !0}) d.pseudos[b] = mb(b);

        function pb() {
        }

        pb.prototype = d.filters = d.pseudos, d.setFilters = new pb, g = fb.tokenize = function (a, b) {
            var c, e, f, g, h, i, j, k = z[a + " "];
            if (k) return b ? 0 : k.slice(0);
            h = a, i = [], j = d.preFilter;
            while (h) {
                (!c || (e = S.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push(f = [])), c = !1, (e = T.exec(h)) && (c = e.shift(), f.push({
                    value: c,
                    type: e[0].replace(R, " ")
                }), h = h.slice(c.length));
                for (g in d.filter) !(e = X[g].exec(h)) || j[g] && !(e = j[g](e)) || (c = e.shift(), f.push({
                    value: c,
                    type: g,
                    matches: e
                }), h = h.slice(c.length));
                if (!c) break
            }
            return b ? h.length : h ? fb.error(a) : z(a, i).slice(0)
        };

        function qb(a) {
            for (var b = 0, c = a.length, d = ""; c > b; b++) d += a[b].value;
            return d
        }

        function rb(a, b, c) {
            var d = b.dir, e = c && "parentNode" === d, f = x++;
            return b.first ? function (b, c, f) {
                while (b = b[d]) if (1 === b.nodeType || e) return a(b, c, f)
            } : function (b, c, g) {
                var h, i, j = [w, f];
                if (g) {
                    while (b = b[d]) if ((1 === b.nodeType || e) && a(b, c, g)) return !0
                } else while (b = b[d]) if (1 === b.nodeType || e) {
                    if (i = b[u] || (b[u] = {}), (h = i[d]) && h[0] === w && h[1] === f) return j[2] = h[2];
                    if (i[d] = j, j[2] = a(b, c, g)) return !0
                }
            }
        }

        function sb(a) {
            return a.length > 1 ? function (b, c, d) {
                var e = a.length;
                while (e--) if (!a[e](b, c, d)) return !1;
                return !0
            } : a[0]
        }

        function tb(a, b, c) {
            for (var d = 0, e = b.length; e > d; d++) fb(a, b[d], c);
            return c
        }

        function ub(a, b, c, d, e) {
            for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++) (f = a[h]) && (!c || c(f, d, e)) && (g.push(f), j && b.push(h));
            return g
        }

        function vb(a, b, c, d, e, f) {
            return d && !d[u] && (d = vb(d)), e && !e[u] && (e = vb(e, f)), hb(function (f, g, h, i) {
                var j, k, l, m = [], n = [], o = g.length, p = f || tb(b || "*", h.nodeType ? [h] : h, []),
                    q = !a || !f && b ? p : ub(p, m, a, h, i), r = c ? e || (f ? a : o || d) ? [] : g : q;
                if (c && c(q, r, h, i), d) {
                    j = ub(r, n), d(j, [], h, i), k = j.length;
                    while (k--) (l = j[k]) && (r[n[k]] = !(q[n[k]] = l))
                }
                if (f) {
                    if (e || a) {
                        if (e) {
                            j = [], k = r.length;
                            while (k--) (l = r[k]) && j.push(q[k] = l);
                            e(null, r = [], j, i)
                        }
                        k = r.length;
                        while (k--) (l = r[k]) && (j = e ? K.call(f, l) : m[k]) > -1 && (f[j] = !(g[j] = l))
                    }
                } else r = ub(r === g ? r.splice(o, r.length) : r), e ? e(null, g, r, i) : I.apply(g, r)
            })
        }

        function wb(a) {
            for (var b, c, e, f = a.length, g = d.relative[a[0].type], h = g || d.relative[" "], i = g ? 1 : 0, k = rb(function (a) {
                return a === b
            }, h, !0), l = rb(function (a) {
                return K.call(b, a) > -1
            }, h, !0), m = [function (a, c, d) {
                return !g && (d || c !== j) || ((b = c).nodeType ? k(a, c, d) : l(a, c, d))
            }]; f > i; i++) if (c = d.relative[a[i].type]) m = [rb(sb(m), c)]; else {
                if (c = d.filter[a[i].type].apply(null, a[i].matches), c[u]) {
                    for (e = ++i; f > e; e++) if (d.relative[a[e].type]) break;
                    return vb(i > 1 && sb(m), i > 1 && qb(a.slice(0, i - 1).concat({value: " " === a[i - 2].type ? "*" : ""})).replace(R, "$1"), c, e > i && wb(a.slice(i, e)), f > e && wb(a = a.slice(e)), f > e && qb(a))
                }
                m.push(c)
            }
            return sb(m)
        }

        function xb(a, b) {
            var c = b.length > 0, e = a.length > 0, f = function (f, g, h, i, k) {
                var l, m, o, p = 0, q = "0", r = f && [], s = [], t = j, u = f || e && d.find.TAG("*", k),
                    v = w += null == t ? 1 : Math.random() || .1, x = u.length;
                for (k && (j = g !== n && g); q !== x && null != (l = u[q]); q++) {
                    if (e && l) {
                        m = 0;
                        while (o = a[m++]) if (o(l, g, h)) {
                            i.push(l);
                            break
                        }
                        k && (w = v)
                    }
                    c && ((l = !o && l) && p--, f && r.push(l))
                }
                if (p += q, c && q !== p) {
                    m = 0;
                    while (o = b[m++]) o(r, s, g, h);
                    if (f) {
                        if (p > 0) while (q--) r[q] || s[q] || (s[q] = G.call(i));
                        s = ub(s)
                    }
                    I.apply(i, s), k && !f && s.length > 0 && p + b.length > 1 && fb.uniqueSort(i)
                }
                return k && (w = v, j = t), r
            };
            return c ? hb(f) : f
        }

        return h = fb.compile = function (a, b) {
            var c, d = [], e = [], f = A[a + " "];
            if (!f) {
                b || (b = g(a)), c = b.length;
                while (c--) f = wb(b[c]), f[u] ? d.push(f) : e.push(f);
                f = A(a, xb(e, d)), f.selector = a
            }
            return f
        }, i = fb.select = function (a, b, e, f) {
            var i, j, k, l, m, n = "function" == typeof a && a, o = !f && g(a = n.selector || a);
            if (e = e || [], 1 === o.length) {
                if (j = o[0] = o[0].slice(0), j.length > 2 && "ID" === (k = j[0]).type && c.getById && 9 === b.nodeType && p && d.relative[j[1].type]) {
                    if (b = (d.find.ID(k.matches[0].replace(cb, db), b) || [])[0], !b) return e;
                    n && (b = b.parentNode), a = a.slice(j.shift().value.length)
                }
                i = X.needsContext.test(a) ? 0 : j.length;
                while (i--) {
                    if (k = j[i], d.relative[l = k.type]) break;
                    if ((m = d.find[l]) && (f = m(k.matches[0].replace(cb, db), ab.test(j[0].type) && ob(b.parentNode) || b))) {
                        if (j.splice(i, 1), a = f.length && qb(j), !a) return I.apply(e, f), e;
                        break
                    }
                }
            }
            return (n || h(a, o))(f, b, !p, e, ab.test(a) && ob(b.parentNode) || b), e
        }, c.sortStable = u.split("").sort(B).join("") === u, c.detectDuplicates = !!l, m(), c.sortDetached = ib(function (a) {
            return 1 & a.compareDocumentPosition(n.createElement("div"))
        }), ib(function (a) {
            return a.innerHTML = "<a href='#'></a>", "#" === a.firstChild.getAttribute("href")
        }) || jb("type|href|height|width", function (a, b, c) {
            return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2)
        }), c.attributes && ib(function (a) {
            return a.innerHTML = "<input/>", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value")
        }) || jb("value", function (a, b, c) {
            return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue
        }), ib(function (a) {
            return null == a.getAttribute("disabled")
        }) || jb(L, function (a, b, c) {
            var d;
            return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
        }), fb
    }(a);
    m.find = s, m.expr = s.selectors, m.expr[":"] = m.expr.pseudos, m.unique = s.uniqueSort, m.text = s.getText, m.isXMLDoc = s.isXML, m.contains = s.contains;
    var t = m.expr.match.needsContext, u = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, v = /^.[^:#\[\.,]*$/;

    function w(a, b, c) {
        if (m.isFunction(b)) return m.grep(a, function (a, d) {
            return !!b.call(a, d, a) !== c
        });
        if (b.nodeType) return m.grep(a, function (a) {
            return a === b !== c
        });
        if ("string" == typeof b) {
            if (v.test(b)) return m.filter(b, a, c);
            b = m.filter(b, a)
        }
        return m.grep(a, function (a) {
            return m.inArray(a, b) >= 0 !== c
        })
    }

    m.filter = function (a, b, c) {
        var d = b[0];
        return c && (a = ":not(" + a + ")"), 1 === b.length && 1 === d.nodeType ? m.find.matchesSelector(d, a) ? [d] : [] : m.find.matches(a, m.grep(b, function (a) {
            return 1 === a.nodeType
        }))
    }, m.fn.extend({
        find: function (a) {
            var b, c = [], d = this, e = d.length;
            if ("string" != typeof a) return this.pushStack(m(a).filter(function () {
                for (b = 0; e > b; b++) if (m.contains(d[b], this)) return !0
            }));
            for (b = 0; e > b; b++) m.find(a, d[b], c);
            return c = this.pushStack(e > 1 ? m.unique(c) : c), c.selector = this.selector ? this.selector + " " + a : a, c
        }, filter: function (a) {
            return this.pushStack(w(this, a || [], !1))
        }, not: function (a) {
            return this.pushStack(w(this, a || [], !0))
        }, is: function (a) {
            return !!w(this, "string" == typeof a && t.test(a) ? m(a) : a || [], !1).length
        }
    });
    var x, y = a.document, z = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, A = m.fn.init = function (a, b) {
        var c, d;
        if (!a) return this;
        if ("string" == typeof a) {
            if (c = "<" === a.charAt(0) && ">" === a.charAt(a.length - 1) && a.length >= 3 ? [null, a, null] : z.exec(a), !c || !c[1] && b) return !b || b.jquery ? (b || x).find(a) : this.constructor(b).find(a);
            if (c[1]) {
                if (b = b instanceof m ? b[0] : b, m.merge(this, m.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : y, !0)), u.test(c[1]) && m.isPlainObject(b)) for (c in b) m.isFunction(this[c]) ? this[c](b[c]) : this.attr(c, b[c]);
                return this
            }
            if (d = y.getElementById(c[2]), d && d.parentNode) {
                if (d.id !== c[2]) return x.find(a);
                this.length = 1, this[0] = d
            }
            return this.context = y, this.selector = a, this
        }
        return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : m.isFunction(a) ? "undefined" != typeof x.ready ? x.ready(a) : a(m) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), m.makeArray(a, this))
    };
    A.prototype = m.fn, x = m(y);
    var B = /^(?:parents|prev(?:Until|All))/, C = {children: !0, contents: !0, next: !0, prev: !0};
    m.extend({
        dir: function (a, b, c) {
            var d = [], e = a[b];
            while (e && 9 !== e.nodeType && (void 0 === c || 1 !== e.nodeType || !m(e).is(c))) 1 === e.nodeType && d.push(e), e = e[b];
            return d
        }, sibling: function (a, b) {
            for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a);
            return c
        }
    }), m.fn.extend({
        has: function (a) {
            var b, c = m(a, this), d = c.length;
            return this.filter(function () {
                for (b = 0; d > b; b++) if (m.contains(this, c[b])) return !0
            })
        }, closest: function (a, b) {
            for (var c, d = 0, e = this.length, f = [], g = t.test(a) || "string" != typeof a ? m(a, b || this.context) : 0; e > d; d++) for (c = this[d]; c && c !== b; c = c.parentNode) if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && m.find.matchesSelector(c, a))) {
                f.push(c);
                break
            }
            return this.pushStack(f.length > 1 ? m.unique(f) : f)
        }, index: function (a) {
            return a ? "string" == typeof a ? m.inArray(this[0], m(a)) : m.inArray(a.jquery ? a[0] : a, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
        }, add: function (a, b) {
            return this.pushStack(m.unique(m.merge(this.get(), m(a, b))))
        }, addBack: function (a) {
            return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
        }
    });

    function D(a, b) {
        do a = a[b]; while (a && 1 !== a.nodeType);
        return a
    }

    m.each({
        parent: function (a) {
            var b = a.parentNode;
            return b && 11 !== b.nodeType ? b : null
        }, parents: function (a) {
            return m.dir(a, "parentNode")
        }, parentsUntil: function (a, b, c) {
            return m.dir(a, "parentNode", c)
        }, next: function (a) {
            return D(a, "nextSibling")
        }, prev: function (a) {
            return D(a, "previousSibling")
        }, nextAll: function (a) {
            return m.dir(a, "nextSibling")
        }, prevAll: function (a) {
            return m.dir(a, "previousSibling")
        }, nextUntil: function (a, b, c) {
            return m.dir(a, "nextSibling", c)
        }, prevUntil: function (a, b, c) {
            return m.dir(a, "previousSibling", c)
        }, siblings: function (a) {
            return m.sibling((a.parentNode || {}).firstChild, a)
        }, children: function (a) {
            return m.sibling(a.firstChild)
        }, contents: function (a) {
            return m.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : m.merge([], a.childNodes)
        }
    }, function (a, b) {
        m.fn[a] = function (c, d) {
            var e = m.map(this, b, c);
            return "Until" !== a.slice(-5) && (d = c), d && "string" == typeof d && (e = m.filter(d, e)), this.length > 1 && (C[a] || (e = m.unique(e)), B.test(a) && (e = e.reverse())), this.pushStack(e)
        }
    });
    var E = /\S+/g, F = {};

    function G(a) {
        var b = F[a] = {};
        return m.each(a.match(E) || [], function (a, c) {
            b[c] = !0
        }), b
    }

    m.Callbacks = function (a) {
        a = "string" == typeof a ? F[a] || G(a) : m.extend({}, a);
        var b, c, d, e, f, g, h = [], i = !a.once && [], j = function (l) {
            for (c = a.memory && l, d = !0, f = g || 0, g = 0, e = h.length, b = !0; h && e > f; f++) if (h[f].apply(l[0], l[1]) === !1 && a.stopOnFalse) {
                c = !1;
                break
            }
            b = !1, h && (i ? i.length && j(i.shift()) : c ? h = [] : k.disable())
        }, k = {
            add: function () {
                if (h) {
                    var d = h.length;
                    !function f(b) {
                        m.each(b, function (b, c) {
                            var d = m.type(c);
                            "function" === d ? a.unique && k.has(c) || h.push(c) : c && c.length && "string" !== d && f(c)
                        })
                    }(arguments), b ? e = h.length : c && (g = d, j(c))
                }
                return this
            }, remove: function () {
                return h && m.each(arguments, function (a, c) {
                    var d;
                    while ((d = m.inArray(c, h, d)) > -1) h.splice(d, 1), b && (e >= d && e--, f >= d && f--)
                }), this
            }, has: function (a) {
                return a ? m.inArray(a, h) > -1 : !(!h || !h.length)
            }, empty: function () {
                return h = [], e = 0, this
            }, disable: function () {
                return h = i = c = void 0, this
            }, disabled: function () {
                return !h
            }, lock: function () {
                return i = void 0, c || k.disable(), this
            }, locked: function () {
                return !i
            }, fireWith: function (a, c) {
                return !h || d && !i || (c = c || [], c = [a, c.slice ? c.slice() : c], b ? i.push(c) : j(c)), this
            }, fire: function () {
                return k.fireWith(this, arguments), this
            }, fired: function () {
                return !!d
            }
        };
        return k
    }, m.extend({
        Deferred: function (a) {
            var b = [["resolve", "done", m.Callbacks("once memory"), "resolved"], ["reject", "fail", m.Callbacks("once memory"), "rejected"], ["notify", "progress", m.Callbacks("memory")]],
                c = "pending", d = {
                    state: function () {
                        return c
                    }, always: function () {
                        return e.done(arguments).fail(arguments), this
                    }, then: function () {
                        var a = arguments;
                        return m.Deferred(function (c) {
                            m.each(b, function (b, f) {
                                var g = m.isFunction(a[b]) && a[b];
                                e[f[1]](function () {
                                    var a = g && g.apply(this, arguments);
                                    a && m.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments)
                                })
                            }), a = null
                        }).promise()
                    }, promise: function (a) {
                        return null != a ? m.extend(a, d) : d
                    }
                }, e = {};
            return d.pipe = d.then, m.each(b, function (a, f) {
                var g = f[2], h = f[3];
                d[f[1]] = g.add, h && g.add(function () {
                    c = h
                }, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = function () {
                    return e[f[0] + "With"](this === e ? d : this, arguments), this
                }, e[f[0] + "With"] = g.fireWith
            }), d.promise(e), a && a.call(e, e), e
        }, when: function (a) {
            var b = 0, c = d.call(arguments), e = c.length, f = 1 !== e || a && m.isFunction(a.promise) ? e : 0,
                g = 1 === f ? a : m.Deferred(), h = function (a, b, c) {
                    return function (e) {
                        b[a] = this, c[a] = arguments.length > 1 ? d.call(arguments) : e, c === i ? g.notifyWith(b, c) : --f || g.resolveWith(b, c)
                    }
                }, i, j, k;
            if (e > 1) for (i = new Array(e), j = new Array(e), k = new Array(e); e > b; b++) c[b] && m.isFunction(c[b].promise) ? c[b].promise().done(h(b, k, c)).fail(g.reject).progress(h(b, j, i)) : --f;
            return f || g.resolveWith(k, c), g.promise()
        }
    });
    var H;
    m.fn.ready = function (a) {
        return m.ready.promise().done(a), this
    }, m.extend({
        isReady: !1, readyWait: 1, holdReady: function (a) {
            a ? m.readyWait++ : m.ready(!0)
        }, ready: function (a) {
            if (a === !0 ? !--m.readyWait : !m.isReady) {
                if (!y.body) return setTimeout(m.ready);
                m.isReady = !0, a !== !0 && --m.readyWait > 0 || (H.resolveWith(y, [m]), m.fn.triggerHandler && (m(y).triggerHandler("ready"), m(y).off("ready")))
            }
        }
    });

    function I() {
        y.addEventListener ? (y.removeEventListener("DOMContentLoaded", J, !1), a.removeEventListener("load", J, !1)) : (y.detachEvent("onreadystatechange", J), a.detachEvent("onload", J))
    }

    function J() {
        (y.addEventListener || "load" === event.type || "complete" === y.readyState) && (I(), m.ready())
    }

    m.ready.promise = function (b) {
        if (!H) if (H = m.Deferred(), "complete" === y.readyState) setTimeout(m.ready); else if (y.addEventListener) y.addEventListener("DOMContentLoaded", J, !1), a.addEventListener("load", J, !1); else {
            y.attachEvent("onreadystatechange", J), a.attachEvent("onload", J);
            var c = !1;
            try {
                c = null == a.frameElement && y.documentElement
            } catch (d) {
            }
            c && c.doScroll && !function e() {
                if (!m.isReady) {
                    try {
                        c.doScroll("left")
                    } catch (a) {
                        return setTimeout(e, 50)
                    }
                    I(), m.ready()
                }
            }()
        }
        return H.promise(b)
    };
    var K = "undefined", L;
    for (L in m(k)) break;
    k.ownLast = "0" !== L, k.inlineBlockNeedsLayout = !1, m(function () {
        var a, b, c, d;
        c = y.getElementsByTagName("body")[0], c && c.style && (b = y.createElement("div"), d = y.createElement("div"), d.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", c.appendChild(d).appendChild(b), typeof b.style.zoom !== K && (b.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1", k.inlineBlockNeedsLayout = a = 3 === b.offsetWidth, a && (c.style.zoom = 1)), c.removeChild(d))
    }), function () {
        var a = y.createElement("div");
        if (null == k.deleteExpando) {
            k.deleteExpando = !0;
            try {
                delete a.test
            } catch (b) {
                k.deleteExpando = !1
            }
        }
        a = null
    }(), m.acceptData = function (a) {
        var b = m.noData[(a.nodeName + " ").toLowerCase()], c = +a.nodeType || 1;
        return 1 !== c && 9 !== c ? !1 : !b || b !== !0 && a.getAttribute("classid") === b
    };
    var M = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, N = /([A-Z])/g;

    function O(a, b, c) {
        if (void 0 === c && 1 === a.nodeType) {
            var d = "data-" + b.replace(N, "-$1").toLowerCase();
            if (c = a.getAttribute(d), "string" == typeof c) {
                try {
                    c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : M.test(c) ? m.parseJSON(c) : c
                } catch (e) {
                }
                m.data(a, b, c)
            } else c = void 0
        }
        return c
    }

    function P(a) {
        var b;
        for (b in a) if (("data" !== b || !m.isEmptyObject(a[b])) && "toJSON" !== b) return !1;
        return !0
    }

    function Q(a, b, d, e) {
        if (m.acceptData(a)) {
            var f, g, h = m.expando, i = a.nodeType, j = i ? m.cache : a, k = i ? a[h] : a[h] && h;
            if (k && j[k] && (e || j[k].data) || void 0 !== d || "string" != typeof b) return k || (k = i ? a[h] = c.pop() || m.guid++ : h), j[k] || (j[k] = i ? {} : {toJSON: m.noop}), ("object" == typeof b || "function" == typeof b) && (e ? j[k] = m.extend(j[k], b) : j[k].data = m.extend(j[k].data, b)), g = j[k], e || (g.data || (g.data = {}), g = g.data), void 0 !== d && (g[m.camelCase(b)] = d), "string" == typeof b ? (f = g[b], null == f && (f = g[m.camelCase(b)])) : f = g, f
        }
    }

    function R(a, b, c) {
        if (m.acceptData(a)) {
            var d, e, f = a.nodeType, g = f ? m.cache : a, h = f ? a[m.expando] : m.expando;
            if (g[h]) {
                if (b && (d = c ? g[h] : g[h].data)) {
                    m.isArray(b) ? b = b.concat(m.map(b, m.camelCase)) : b in d ? b = [b] : (b = m.camelCase(b), b = b in d ? [b] : b.split(" ")), e = b.length;
                    while (e--) delete d[b[e]];
                    if (c ? !P(d) : !m.isEmptyObject(d)) return
                }
                (c || (delete g[h].data, P(g[h]))) && (f ? m.cleanData([a], !0) : k.deleteExpando || g != g.window ? delete g[h] : g[h] = null)
            }
        }
    }

    m.extend({
        cache: {},
        noData: {"applet ": !0, "embed ": !0, "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},
        hasData: function (a) {
            return a = a.nodeType ? m.cache[a[m.expando]] : a[m.expando], !!a && !P(a)
        },
        data: function (a, b, c) {
            return Q(a, b, c)
        },
        removeData: function (a, b) {
            return R(a, b)
        },
        _data: function (a, b, c) {
            return Q(a, b, c, !0)
        },
        _removeData: function (a, b) {
            return R(a, b, !0)
        }
    }), m.fn.extend({
        data: function (a, b) {
            var c, d, e, f = this[0], g = f && f.attributes;
            if (void 0 === a) {
                if (this.length && (e = m.data(f), 1 === f.nodeType && !m._data(f, "parsedAttrs"))) {
                    c = g.length;
                    while (c--) g[c] && (d = g[c].name, 0 === d.indexOf("data-") && (d = m.camelCase(d.slice(5)), O(f, d, e[d])));
                    m._data(f, "parsedAttrs", !0)
                }
                return e
            }
            return "object" == typeof a ? this.each(function () {
                m.data(this, a)
            }) : arguments.length > 1 ? this.each(function () {
                m.data(this, a, b)
            }) : f ? O(f, a, m.data(f, a)) : void 0
        }, removeData: function (a) {
            return this.each(function () {
                m.removeData(this, a)
            })
        }
    }), m.extend({
        queue: function (a, b, c) {
            var d;
            return a ? (b = (b || "fx") + "queue", d = m._data(a, b), c && (!d || m.isArray(c) ? d = m._data(a, b, m.makeArray(c)) : d.push(c)), d || []) : void 0
        }, dequeue: function (a, b) {
            b = b || "fx";
            var c = m.queue(a, b), d = c.length, e = c.shift(), f = m._queueHooks(a, b), g = function () {
                m.dequeue(a, b)
            };
            "inprogress" === e && (e = c.shift(), d--), e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire()
        }, _queueHooks: function (a, b) {
            var c = b + "queueHooks";
            return m._data(a, c) || m._data(a, c, {
                empty: m.Callbacks("once memory").add(function () {
                    m._removeData(a, b + "queue"), m._removeData(a, c)
                })
            })
        }
    }), m.fn.extend({
        queue: function (a, b) {
            var c = 2;
            return "string" != typeof a && (b = a, a = "fx", c--), arguments.length < c ? m.queue(this[0], a) : void 0 === b ? this : this.each(function () {
                var c = m.queue(this, a, b);
                m._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && m.dequeue(this, a)
            })
        }, dequeue: function (a) {
            return this.each(function () {
                m.dequeue(this, a)
            })
        }, clearQueue: function (a) {
            return this.queue(a || "fx", [])
        }, promise: function (a, b) {
            var c, d = 1, e = m.Deferred(), f = this, g = this.length, h = function () {
                --d || e.resolveWith(f, [f])
            };
            "string" != typeof a && (b = a, a = void 0), a = a || "fx";
            while (g--) c = m._data(f[g], a + "queueHooks"), c && c.empty && (d++, c.empty.add(h));
            return h(), e.promise(b)
        }
    });
    var S = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, T = ["Top", "Right", "Bottom", "Left"], U = function (a, b) {
        return a = b || a, "none" === m.css(a, "display") || !m.contains(a.ownerDocument, a)
    }, V = m.access = function (a, b, c, d, e, f, g) {
        var h = 0, i = a.length, j = null == c;
        if ("object" === m.type(c)) {
            e = !0;
            for (h in c) m.access(a, b, h, c[h], !0, f, g)
        } else if (void 0 !== d && (e = !0, m.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function (a, b, c) {
            return j.call(m(a), c)
        })), b)) for (; i > h; h++) b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c)));
        return e ? a : j ? b.call(a) : i ? b(a[0], c) : f
    }, W = /^(?:checkbox|radio)$/i;
    !function () {
        var a = y.createElement("input"), b = y.createElement("div"), c = y.createDocumentFragment();
        if (b.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", k.leadingWhitespace = 3 === b.firstChild.nodeType, k.tbody = !b.getElementsByTagName("tbody").length, k.htmlSerialize = !!b.getElementsByTagName("link").length, k.html5Clone = "<:nav></:nav>" !== y.createElement("nav").cloneNode(!0).outerHTML, a.type = "checkbox", a.checked = !0, c.appendChild(a), k.appendChecked = a.checked, b.innerHTML = "<textarea>x</textarea>", k.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue, c.appendChild(b), b.innerHTML = "<input type='radio' checked='checked' name='t'/>", k.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, k.noCloneEvent = !0, b.attachEvent && (b.attachEvent("onclick", function () {
            k.noCloneEvent = !1
        }), b.cloneNode(!0).click()), null == k.deleteExpando) {
            k.deleteExpando = !0;
            try {
                delete b.test
            } catch (d) {
                k.deleteExpando = !1
            }
        }
    }(), function () {
        var b, c, d = y.createElement("div");
        for (b in {
            submit: !0,
            change: !0,
            focusin: !0
        }) c = "on" + b, (k[b + "Bubbles"] = c in a) || (d.setAttribute(c, "t"), k[b + "Bubbles"] = d.attributes[c].expando === !1);
        d = null
    }();
    var X = /^(?:input|select|textarea)$/i, Y = /^key/, Z = /^(?:mouse|pointer|contextmenu)|click/,
        $ = /^(?:focusinfocus|focusoutblur)$/, _ = /^([^.]*)(?:\.(.+)|)$/;

    function ab() {
        return !0
    }

    function bb() {
        return !1
    }

    function cb() {
        try {
            return y.activeElement
        } catch (a) {
        }
    }

    m.event = {
        global: {},
        add: function (a, b, c, d, e) {
            var f, g, h, i, j, k, l, n, o, p, q, r = m._data(a);
            if (r) {
                c.handler && (i = c, c = i.handler, e = i.selector), c.guid || (c.guid = m.guid++), (g = r.events) || (g = r.events = {}), (k = r.handle) || (k = r.handle = function (a) {
                    return typeof m === K || a && m.event.triggered === a.type ? void 0 : m.event.dispatch.apply(k.elem, arguments)
                }, k.elem = a), b = (b || "").match(E) || [""], h = b.length;
                while (h--) f = _.exec(b[h]) || [], o = q = f[1], p = (f[2] || "").split(".").sort(), o && (j = m.event.special[o] || {}, o = (e ? j.delegateType : j.bindType) || o, j = m.event.special[o] || {}, l = m.extend({
                    type: o,
                    origType: q,
                    data: d,
                    handler: c,
                    guid: c.guid,
                    selector: e,
                    needsContext: e && m.expr.match.needsContext.test(e),
                    namespace: p.join(".")
                }, i), (n = g[o]) || (n = g[o] = [], n.delegateCount = 0, j.setup && j.setup.call(a, d, p, k) !== !1 || (a.addEventListener ? a.addEventListener(o, k, !1) : a.attachEvent && a.attachEvent("on" + o, k))), j.add && (j.add.call(a, l), l.handler.guid || (l.handler.guid = c.guid)), e ? n.splice(n.delegateCount++, 0, l) : n.push(l), m.event.global[o] = !0);
                a = null
            }
        },
        remove: function (a, b, c, d, e) {
            var f, g, h, i, j, k, l, n, o, p, q, r = m.hasData(a) && m._data(a);
            if (r && (k = r.events)) {
                b = (b || "").match(E) || [""], j = b.length;
                while (j--) if (h = _.exec(b[j]) || [], o = q = h[1], p = (h[2] || "").split(".").sort(), o) {
                    l = m.event.special[o] || {}, o = (d ? l.delegateType : l.bindType) || o, n = k[o] || [], h = h[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"), i = f = n.length;
                    while (f--) g = n[f], !e && q !== g.origType || c && c.guid !== g.guid || h && !h.test(g.namespace) || d && d !== g.selector && ("**" !== d || !g.selector) || (n.splice(f, 1), g.selector && n.delegateCount--, l.remove && l.remove.call(a, g));
                    i && !n.length && (l.teardown && l.teardown.call(a, p, r.handle) !== !1 || m.removeEvent(a, o, r.handle), delete k[o])
                } else for (o in k) m.event.remove(a, o + b[j], c, d, !0);
                m.isEmptyObject(k) && (delete r.handle, m._removeData(a, "events"))
            }
        },
        trigger: function (b, c, d, e) {
            var f, g, h, i, k, l, n, o = [d || y], p = j.call(b, "type") ? b.type : b,
                q = j.call(b, "namespace") ? b.namespace.split(".") : [];
            if (h = l = d = d || y, 3 !== d.nodeType && 8 !== d.nodeType && !$.test(p + m.event.triggered) && (p.indexOf(".") >= 0 && (q = p.split("."), p = q.shift(), q.sort()), g = p.indexOf(":") < 0 && "on" + p, b = b[m.expando] ? b : new m.Event(p, "object" == typeof b && b), b.isTrigger = e ? 2 : 3, b.namespace = q.join("."), b.namespace_re = b.namespace ? new RegExp("(^|\\.)" + q.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [b] : m.makeArray(c, [b]), k = m.event.special[p] || {}, e || !k.trigger || k.trigger.apply(d, c) !== !1)) {
                if (!e && !k.noBubble && !m.isWindow(d)) {
                    for (i = k.delegateType || p, $.test(i + p) || (h = h.parentNode); h; h = h.parentNode) o.push(h), l = h;
                    l === (d.ownerDocument || y) && o.push(l.defaultView || l.parentWindow || a)
                }
                n = 0;
                while ((h = o[n++]) && !b.isPropagationStopped()) b.type = n > 1 ? i : k.bindType || p, f = (m._data(h, "events") || {})[b.type] && m._data(h, "handle"), f && f.apply(h, c), f = g && h[g], f && f.apply && m.acceptData(h) && (b.result = f.apply(h, c), b.result === !1 && b.preventDefault());
                if (b.type = p, !e && !b.isDefaultPrevented() && (!k._default || k._default.apply(o.pop(), c) === !1) && m.acceptData(d) && g && d[p] && !m.isWindow(d)) {
                    l = d[g], l && (d[g] = null), m.event.triggered = p;
                    try {
                        d[p]()
                    } catch (r) {
                    }
                    m.event.triggered = void 0, l && (d[g] = l)
                }
                return b.result
            }
        },
        dispatch: function (a) {
            a = m.event.fix(a);
            var b, c, e, f, g, h = [], i = d.call(arguments), j = (m._data(this, "events") || {})[a.type] || [],
                k = m.event.special[a.type] || {};
            if (i[0] = a, a.delegateTarget = this, !k.preDispatch || k.preDispatch.call(this, a) !== !1) {
                h = m.event.handlers.call(this, a, j), b = 0;
                while ((f = h[b++]) && !a.isPropagationStopped()) {
                    a.currentTarget = f.elem, g = 0;
                    while ((e = f.handlers[g++]) && !a.isImmediatePropagationStopped()) (!a.namespace_re || a.namespace_re.test(e.namespace)) && (a.handleObj = e, a.data = e.data, c = ((m.event.special[e.origType] || {}).handle || e.handler).apply(f.elem, i), void 0 !== c && (a.result = c) === !1 && (a.preventDefault(), a.stopPropagation()))
                }
                return k.postDispatch && k.postDispatch.call(this, a), a.result
            }
        },
        handlers: function (a, b) {
            var c, d, e, f, g = [], h = b.delegateCount, i = a.target;
            if (h && i.nodeType && (!a.button || "click" !== a.type)) for (; i != this; i = i.parentNode || this) if (1 === i.nodeType && (i.disabled !== !0 || "click" !== a.type)) {
                for (e = [], f = 0; h > f; f++) d = b[f], c = d.selector + " ", void 0 === e[c] && (e[c] = d.needsContext ? m(c, this).index(i) >= 0 : m.find(c, this, null, [i]).length), e[c] && e.push(d);
                e.length && g.push({elem: i, handlers: e})
            }
            return h < b.length && g.push({elem: this, handlers: b.slice(h)}), g
        },
        fix: function (a) {
            if (a[m.expando]) return a;
            var b, c, d, e = a.type, f = a, g = this.fixHooks[e];
            g || (this.fixHooks[e] = g = Z.test(e) ? this.mouseHooks : Y.test(e) ? this.keyHooks : {}), d = g.props ? this.props.concat(g.props) : this.props, a = new m.Event(f), b = d.length;
            while (b--) c = d[b], a[c] = f[c];
            return a.target || (a.target = f.srcElement || y), 3 === a.target.nodeType && (a.target = a.target.parentNode), a.metaKey = !!a.metaKey, g.filter ? g.filter(a, f) : a
        },
        props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
        fixHooks: {},
        keyHooks: {
            props: "char charCode key keyCode".split(" "), filter: function (a, b) {
                return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a
            }
        },
        mouseHooks: {
            props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
            filter: function (a, b) {
                var c, d, e, f = b.button, g = b.fromElement;
                return null == a.pageX && null != b.clientX && (d = a.target.ownerDocument || y, e = d.documentElement, c = d.body, a.pageX = b.clientX + (e && e.scrollLeft || c && c.scrollLeft || 0) - (e && e.clientLeft || c && c.clientLeft || 0), a.pageY = b.clientY + (e && e.scrollTop || c && c.scrollTop || 0) - (e && e.clientTop || c && c.clientTop || 0)), !a.relatedTarget && g && (a.relatedTarget = g === a.target ? b.toElement : g), a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), a
            }
        },
        special: {
            load: {noBubble: !0}, focus: {
                trigger: function () {
                    if (this !== cb() && this.focus) try {
                        return this.focus(), !1
                    } catch (a) {
                    }
                }, delegateType: "focusin"
            }, blur: {
                trigger: function () {
                    return this === cb() && this.blur ? (this.blur(), !1) : void 0
                }, delegateType: "focusout"
            }, click: {
                trigger: function () {
                    return m.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0
                }, _default: function (a) {
                    return m.nodeName(a.target, "a")
                }
            }, beforeunload: {
                postDispatch: function (a) {
                    void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result)
                }
            }
        },
        simulate: function (a, b, c, d) {
            var e = m.extend(new m.Event, c, {type: a, isSimulated: !0, originalEvent: {}});
            d ? m.event.trigger(e, null, b) : m.event.dispatch.call(b, e), e.isDefaultPrevented() && c.preventDefault()
        }
    }, m.removeEvent = y.removeEventListener ? function (a, b, c) {
        a.removeEventListener && a.removeEventListener(b, c, !1)
    } : function (a, b, c) {
        var d = "on" + b;
        a.detachEvent && (typeof a[d] === K && (a[d] = null), a.detachEvent(d, c))
    }, m.Event = function (a, b) {
        return this instanceof m.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? ab : bb) : this.type = a, b && m.extend(this, b), this.timeStamp = a && a.timeStamp || m.now(), void (this[m.expando] = !0)) : new m.Event(a, b)
    }, m.Event.prototype = {
        isDefaultPrevented: bb,
        isPropagationStopped: bb,
        isImmediatePropagationStopped: bb,
        preventDefault: function () {
            var a = this.originalEvent;
            this.isDefaultPrevented = ab, a && (a.preventDefault ? a.preventDefault() : a.returnValue = !1)
        },
        stopPropagation: function () {
            var a = this.originalEvent;
            this.isPropagationStopped = ab, a && (a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0)
        },
        stopImmediatePropagation: function () {
            var a = this.originalEvent;
            this.isImmediatePropagationStopped = ab, a && a.stopImmediatePropagation && a.stopImmediatePropagation(), this.stopPropagation()
        }
    }, m.each({
        mouseenter: "mouseover",
        mouseleave: "mouseout",
        pointerenter: "pointerover",
        pointerleave: "pointerout"
    }, function (a, b) {
        m.event.special[a] = {
            delegateType: b, bindType: b, handle: function (a) {
                var c, d = this, e = a.relatedTarget, f = a.handleObj;
                return (!e || e !== d && !m.contains(d, e)) && (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c
            }
        }
    }), k.submitBubbles || (m.event.special.submit = {
        setup: function () {
            return m.nodeName(this, "form") ? !1 : void m.event.add(this, "click._submit keypress._submit", function (a) {
                var b = a.target, c = m.nodeName(b, "input") || m.nodeName(b, "button") ? b.form : void 0;
                c && !m._data(c, "submitBubbles") && (m.event.add(c, "submit._submit", function (a) {
                    a._submit_bubble = !0
                }), m._data(c, "submitBubbles", !0))
            })
        }, postDispatch: function (a) {
            a._submit_bubble && (delete a._submit_bubble, this.parentNode && !a.isTrigger && m.event.simulate("submit", this.parentNode, a, !0))
        }, teardown: function () {
            return m.nodeName(this, "form") ? !1 : void m.event.remove(this, "._submit")
        }
    }), k.changeBubbles || (m.event.special.change = {
        setup: function () {
            return X.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (m.event.add(this, "propertychange._change", function (a) {
                "checked" === a.originalEvent.propertyName && (this._just_changed = !0)
            }), m.event.add(this, "click._change", function (a) {
                this._just_changed && !a.isTrigger && (this._just_changed = !1), m.event.simulate("change", this, a, !0)
            })), !1) : void m.event.add(this, "beforeactivate._change", function (a) {
                var b = a.target;
                X.test(b.nodeName) && !m._data(b, "changeBubbles") && (m.event.add(b, "change._change", function (a) {
                    !this.parentNode || a.isSimulated || a.isTrigger || m.event.simulate("change", this.parentNode, a, !0)
                }), m._data(b, "changeBubbles", !0))
            })
        }, handle: function (a) {
            var b = a.target;
            return this !== b || a.isSimulated || a.isTrigger || "radio" !== b.type && "checkbox" !== b.type ? a.handleObj.handler.apply(this, arguments) : void 0
        }, teardown: function () {
            return m.event.remove(this, "._change"), !X.test(this.nodeName)
        }
    }), k.focusinBubbles || m.each({focus: "focusin", blur: "focusout"}, function (a, b) {
        var c = function (a) {
            m.event.simulate(b, a.target, m.event.fix(a), !0)
        };
        m.event.special[b] = {
            setup: function () {
                var d = this.ownerDocument || this, e = m._data(d, b);
                e || d.addEventListener(a, c, !0), m._data(d, b, (e || 0) + 1)
            }, teardown: function () {
                var d = this.ownerDocument || this, e = m._data(d, b) - 1;
                e ? m._data(d, b, e) : (d.removeEventListener(a, c, !0), m._removeData(d, b))
            }
        }
    }), m.fn.extend({
        on: function (a, b, c, d, e) {
            var f, g;
            if ("object" == typeof a) {
                "string" != typeof b && (c = c || b, b = void 0);
                for (f in a) this.on(f, b, c, a[f], e);
                return this
            }
            if (null == c && null == d ? (d = b, c = b = void 0) : null == d && ("string" == typeof b ? (d = c, c = void 0) : (d = c, c = b, b = void 0)), d === !1) d = bb; else if (!d) return this;
            return 1 === e && (g = d, d = function (a) {
                return m().off(a), g.apply(this, arguments)
            }, d.guid = g.guid || (g.guid = m.guid++)), this.each(function () {
                m.event.add(this, a, d, c, b)
            })
        }, one: function (a, b, c, d) {
            return this.on(a, b, c, d, 1)
        }, off: function (a, b, c) {
            var d, e;
            if (a && a.preventDefault && a.handleObj) return d = a.handleObj, m(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler), this;
            if ("object" == typeof a) {
                for (e in a) this.off(e, b, a[e]);
                return this
            }
            return (b === !1 || "function" == typeof b) && (c = b, b = void 0), c === !1 && (c = bb), this.each(function () {
                m.event.remove(this, a, c, b)
            })
        }, trigger: function (a, b) {
            return this.each(function () {
                m.event.trigger(a, b, this)
            })
        }, triggerHandler: function (a, b) {
            var c = this[0];
            return c ? m.event.trigger(a, b, c, !0) : void 0
        }
    });

    function db(a) {
        var b = eb.split("|"), c = a.createDocumentFragment();
        if (c.createElement) while (b.length) c.createElement(b.pop());
        return c
    }

    var eb = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
        fb = / jQuery\d+="(?:null|\d+)"/g, gb = new RegExp("<(?:" + eb + ")[\\s/>]", "i"), hb = /^\s+/,
        ib = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, jb = /<([\w:]+)/,
        kb = /<tbody/i, lb = /<|&#?\w+;/, mb = /<(?:script|style|link)/i, nb = /checked\s*(?:[^=]|=\s*.checked.)/i,
        ob = /^$|\/(?:java|ecma)script/i, pb = /^true\/(.*)/, qb = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, rb = {
            option: [1, "<select multiple='multiple'>", "</select>"],
            legend: [1, "<fieldset>", "</fieldset>"],
            area: [1, "<map>", "</map>"],
            param: [1, "<object>", "</object>"],
            thead: [1, "<table>", "</table>"],
            tr: [2, "<table><tbody>", "</tbody></table>"],
            col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
            td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
            _default: k.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
        }, sb = db(y), tb = sb.appendChild(y.createElement("div"));
    rb.optgroup = rb.option, rb.tbody = rb.tfoot = rb.colgroup = rb.caption = rb.thead, rb.th = rb.td;

    function ub(a, b) {
        var c, d, e = 0,
            f = typeof a.getElementsByTagName !== K ? a.getElementsByTagName(b || "*") : typeof a.querySelectorAll !== K ? a.querySelectorAll(b || "*") : void 0;
        if (!f) for (f = [], c = a.childNodes || a; null != (d = c[e]); e++) !b || m.nodeName(d, b) ? f.push(d) : m.merge(f, ub(d, b));
        return void 0 === b || b && m.nodeName(a, b) ? m.merge([a], f) : f
    }

    function vb(a) {
        W.test(a.type) && (a.defaultChecked = a.checked)
    }

    function wb(a, b) {
        return m.nodeName(a, "table") && m.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a
    }

    function xb(a) {
        return a.type = (null !== m.find.attr(a, "type")) + "/" + a.type, a
    }

    function yb(a) {
        var b = pb.exec(a.type);
        return b ? a.type = b[1] : a.removeAttribute("type"), a
    }

    function zb(a, b) {
        for (var c, d = 0; null != (c = a[d]); d++) m._data(c, "globalEval", !b || m._data(b[d], "globalEval"))
    }

    function Ab(a, b) {
        if (1 === b.nodeType && m.hasData(a)) {
            var c, d, e, f = m._data(a), g = m._data(b, f), h = f.events;
            if (h) {
                delete g.handle, g.events = {};
                for (c in h) for (d = 0, e = h[c].length; e > d; d++) m.event.add(b, c, h[c][d])
            }
            g.data && (g.data = m.extend({}, g.data))
        }
    }

    function Bb(a, b) {
        var c, d, e;
        if (1 === b.nodeType) {
            if (c = b.nodeName.toLowerCase(), !k.noCloneEvent && b[m.expando]) {
                e = m._data(b);
                for (d in e.events) m.removeEvent(b, d, e.handle);
                b.removeAttribute(m.expando)
            }
            "script" === c && b.text !== a.text ? (xb(b).text = a.text, yb(b)) : "object" === c ? (b.parentNode && (b.outerHTML = a.outerHTML), k.html5Clone && a.innerHTML && !m.trim(b.innerHTML) && (b.innerHTML = a.innerHTML)) : "input" === c && W.test(a.type) ? (b.defaultChecked = b.checked = a.checked, b.value !== a.value && (b.value = a.value)) : "option" === c ? b.defaultSelected = b.selected = a.defaultSelected : ("input" === c || "textarea" === c) && (b.defaultValue = a.defaultValue)
        }
    }

    m.extend({
        clone: function (a, b, c) {
            var d, e, f, g, h, i = m.contains(a.ownerDocument, a);
            if (k.html5Clone || m.isXMLDoc(a) || !gb.test("<" + a.nodeName + ">") ? f = a.cloneNode(!0) : (tb.innerHTML = a.outerHTML, tb.removeChild(f = tb.firstChild)), !(k.noCloneEvent && k.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || m.isXMLDoc(a))) for (d = ub(f), h = ub(a), g = 0; null != (e = h[g]); ++g) d[g] && Bb(e, d[g]);
            if (b) if (c) for (h = h || ub(a), d = d || ub(f), g = 0; null != (e = h[g]); g++) Ab(e, d[g]); else Ab(a, f);
            return d = ub(f, "script"), d.length > 0 && zb(d, !i && ub(a, "script")), d = h = e = null, f
        }, buildFragment: function (a, b, c, d) {
            for (var e, f, g, h, i, j, l, n = a.length, o = db(b), p = [], q = 0; n > q; q++) if (f = a[q], f || 0 === f) if ("object" === m.type(f)) m.merge(p, f.nodeType ? [f] : f); else if (lb.test(f)) {
                h = h || o.appendChild(b.createElement("div")), i = (jb.exec(f) || ["", ""])[1].toLowerCase(), l = rb[i] || rb._default, h.innerHTML = l[1] + f.replace(ib, "<$1></$2>") + l[2], e = l[0];
                while (e--) h = h.lastChild;
                if (!k.leadingWhitespace && hb.test(f) && p.push(b.createTextNode(hb.exec(f)[0])), !k.tbody) {
                    f = "table" !== i || kb.test(f) ? "<table>" !== l[1] || kb.test(f) ? 0 : h : h.firstChild, e = f && f.childNodes.length;
                    while (e--) m.nodeName(j = f.childNodes[e], "tbody") && !j.childNodes.length && f.removeChild(j)
                }
                m.merge(p, h.childNodes), h.textContent = "";
                while (h.firstChild) h.removeChild(h.firstChild);
                h = o.lastChild
            } else p.push(b.createTextNode(f));
            h && o.removeChild(h), k.appendChecked || m.grep(ub(p, "input"), vb), q = 0;
            while (f = p[q++]) if ((!d || -1 === m.inArray(f, d)) && (g = m.contains(f.ownerDocument, f), h = ub(o.appendChild(f), "script"), g && zb(h), c)) {
                e = 0;
                while (f = h[e++]) ob.test(f.type || "") && c.push(f)
            }
            return h = null, o
        }, cleanData: function (a, b) {
            for (var d, e, f, g, h = 0, i = m.expando, j = m.cache, l = k.deleteExpando, n = m.event.special; null != (d = a[h]); h++) if ((b || m.acceptData(d)) && (f = d[i], g = f && j[f])) {
                if (g.events) for (e in g.events) n[e] ? m.event.remove(d, e) : m.removeEvent(d, e, g.handle);
                j[f] && (delete j[f], l ? delete d[i] : typeof d.removeAttribute !== K ? d.removeAttribute(i) : d[i] = null, c.push(f))
            }
        }
    }), m.fn.extend({
        text: function (a) {
            return V(this, function (a) {
                return void 0 === a ? m.text(this) : this.empty().append((this[0] && this[0].ownerDocument || y).createTextNode(a))
            }, null, a, arguments.length)
        }, append: function () {
            return this.domManip(arguments, function (a) {
                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                    var b = wb(this, a);
                    b.appendChild(a)
                }
            })
        }, prepend: function () {
            return this.domManip(arguments, function (a) {
                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                    var b = wb(this, a);
                    b.insertBefore(a, b.firstChild)
                }
            })
        }, before: function () {
            return this.domManip(arguments, function (a) {
                this.parentNode && this.parentNode.insertBefore(a, this)
            })
        }, after: function () {
            return this.domManip(arguments, function (a) {
                this.parentNode && this.parentNode.insertBefore(a, this.nextSibling)
            })
        }, remove: function (a, b) {
            for (var c, d = a ? m.filter(a, this) : this, e = 0; null != (c = d[e]); e++) b || 1 !== c.nodeType || m.cleanData(ub(c)), c.parentNode && (b && m.contains(c.ownerDocument, c) && zb(ub(c, "script")), c.parentNode.removeChild(c));
            return this
        }, empty: function () {
            for (var a, b = 0; null != (a = this[b]); b++) {
                1 === a.nodeType && m.cleanData(ub(a, !1));
                while (a.firstChild) a.removeChild(a.firstChild);
                a.options && m.nodeName(a, "select") && (a.options.length = 0)
            }
            return this
        }, clone: function (a, b) {
            return a = null == a ? !1 : a, b = null == b ? a : b, this.map(function () {
                return m.clone(this, a, b)
            })
        }, html: function (a) {
            return V(this, function (a) {
                var b = this[0] || {}, c = 0, d = this.length;
                if (void 0 === a) return 1 === b.nodeType ? b.innerHTML.replace(fb, "") : void 0;
                if (!("string" != typeof a || mb.test(a) || !k.htmlSerialize && gb.test(a) || !k.leadingWhitespace && hb.test(a) || rb[(jb.exec(a) || ["", ""])[1].toLowerCase()])) {
                    a = a.replace(ib, "<$1></$2>");
                    try {
                        for (; d > c; c++) b = this[c] || {}, 1 === b.nodeType && (m.cleanData(ub(b, !1)), b.innerHTML = a);
                        b = 0
                    } catch (e) {
                    }
                }
                b && this.empty().append(a)
            }, null, a, arguments.length)
        }, replaceWith: function () {
            var a = arguments[0];
            return this.domManip(arguments, function (b) {
                a = this.parentNode, m.cleanData(ub(this)), a && a.replaceChild(b, this)
            }), a && (a.length || a.nodeType) ? this : this.remove()
        }, detach: function (a) {
            return this.remove(a, !0)
        }, domManip: function (a, b) {
            a = e.apply([], a);
            var c, d, f, g, h, i, j = 0, l = this.length, n = this, o = l - 1, p = a[0], q = m.isFunction(p);
            if (q || l > 1 && "string" == typeof p && !k.checkClone && nb.test(p)) return this.each(function (c) {
                var d = n.eq(c);
                q && (a[0] = p.call(this, c, d.html())), d.domManip(a, b)
            });
            if (l && (i = m.buildFragment(a, this[0].ownerDocument, !1, this), c = i.firstChild, 1 === i.childNodes.length && (i = c), c)) {
                for (g = m.map(ub(i, "script"), xb), f = g.length; l > j; j++) d = i, j !== o && (d = m.clone(d, !0, !0), f && m.merge(g, ub(d, "script"))), b.call(this[j], d, j);
                if (f) for (h = g[g.length - 1].ownerDocument, m.map(g, yb), j = 0; f > j; j++) d = g[j], ob.test(d.type || "") && !m._data(d, "globalEval") && m.contains(h, d) && (d.src ? m._evalUrl && m._evalUrl(d.src) : m.globalEval((d.text || d.textContent || d.innerHTML || "").replace(qb, "")));
                i = c = null
            }
            return this
        }
    }), m.each({
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith"
    }, function (a, b) {
        m.fn[a] = function (a) {
            for (var c, d = 0, e = [], g = m(a), h = g.length - 1; h >= d; d++) c = d === h ? this : this.clone(!0), m(g[d])[b](c), f.apply(e, c.get());
            return this.pushStack(e)
        }
    });
    var Cb, Db = {};

    function Eb(b, c) {
        var d, e = m(c.createElement(b)).appendTo(c.body),
            f = a.getDefaultComputedStyle && (d = a.getDefaultComputedStyle(e[0])) ? d.display : m.css(e[0], "display");
        return e.detach(), f
    }

    function Fb(a) {
        var b = y, c = Db[a];
        return c || (c = Eb(a, b), "none" !== c && c || (Cb = (Cb || m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement), b = (Cb[0].contentWindow || Cb[0].contentDocument).document, b.write(), b.close(), c = Eb(a, b), Cb.detach()), Db[a] = c), c
    }

    !function () {
        var a;
        k.shrinkWrapBlocks = function () {
            if (null != a) return a;
            a = !1;
            var b, c, d;
            return c = y.getElementsByTagName("body")[0], c && c.style ? (b = y.createElement("div"), d = y.createElement("div"), d.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", c.appendChild(d).appendChild(b), typeof b.style.zoom !== K && (b.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1", b.appendChild(y.createElement("div")).style.width = "5px", a = 3 !== b.offsetWidth), c.removeChild(d), a) : void 0
        }
    }();
    var Gb = /^margin/, Hb = new RegExp("^(" + S + ")(?!px)[a-z%]+$", "i"), Ib, Jb, Kb = /^(top|right|bottom|left)$/;
    a.getComputedStyle ? (Ib = function (a) {
        return a.ownerDocument.defaultView.getComputedStyle(a, null)
    }, Jb = function (a, b, c) {
        var d, e, f, g, h = a.style;
        return c = c || Ib(a), g = c ? c.getPropertyValue(b) || c[b] : void 0, c && ("" !== g || m.contains(a.ownerDocument, a) || (g = m.style(a, b)), Hb.test(g) && Gb.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f)), void 0 === g ? g : g + ""
    }) : y.documentElement.currentStyle && (Ib = function (a) {
        return a.currentStyle
    }, Jb = function (a, b, c) {
        var d, e, f, g, h = a.style;
        return c = c || Ib(a), g = c ? c[b] : void 0, null == g && h && h[b] && (g = h[b]), Hb.test(g) && !Kb.test(b) && (d = h.left, e = a.runtimeStyle, f = e && e.left, f && (e.left = a.currentStyle.left), h.left = "fontSize" === b ? "1em" : g, g = h.pixelLeft + "px", h.left = d, f && (e.left = f)), void 0 === g ? g : g + "" || "auto"
    });

    function Lb(a, b) {
        return {
            get: function () {
                var c = a();
                if (null != c) return c ? void delete this.get : (this.get = b).apply(this, arguments)
            }
        }
    }

    !function () {
        var b, c, d, e, f, g, h;
        if (b = y.createElement("div"), b.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", d = b.getElementsByTagName("a")[0], c = d && d.style) {
            c.cssText = "float:left;opacity:.5", k.opacity = "0.5" === c.opacity, k.cssFloat = !!c.cssFloat, b.style.backgroundClip = "content-box", b.cloneNode(!0).style.backgroundClip = "", k.clearCloneStyle = "content-box" === b.style.backgroundClip, k.boxSizing = "" === c.boxSizing || "" === c.MozBoxSizing || "" === c.WebkitBoxSizing, m.extend(k, {
                reliableHiddenOffsets: function () {
                    return null == g && i(), g
                }, boxSizingReliable: function () {
                    return null == f && i(), f
                }, pixelPosition: function () {
                    return null == e && i(), e
                }, reliableMarginRight: function () {
                    return null == h && i(), h
                }
            });

            function i() {
                var b, c, d, i;
                c = y.getElementsByTagName("body")[0], c && c.style && (b = y.createElement("div"), d = y.createElement("div"), d.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", c.appendChild(d).appendChild(b), b.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute", e = f = !1, h = !0, a.getComputedStyle && (e = "1%" !== (a.getComputedStyle(b, null) || {}).top, f = "4px" === (a.getComputedStyle(b, null) || {width: "4px"}).width, i = b.appendChild(y.createElement("div")), i.style.cssText = b.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", i.style.marginRight = i.style.width = "0", b.style.width = "1px", h = !parseFloat((a.getComputedStyle(i, null) || {}).marginRight)), b.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", i = b.getElementsByTagName("td"), i[0].style.cssText = "margin:0;border:0;padding:0;display:none", g = 0 === i[0].offsetHeight, g && (i[0].style.display = "", i[1].style.display = "none", g = 0 === i[0].offsetHeight), c.removeChild(d))
            }
        }
    }(), m.swap = function (a, b, c, d) {
        var e, f, g = {};
        for (f in b) g[f] = a.style[f], a.style[f] = b[f];
        e = c.apply(a, d || []);
        for (f in b) a.style[f] = g[f];
        return e
    };
    var Mb = /alpha\([^)]*\)/i, Nb = /opacity\s*=\s*([^)]*)/, Ob = /^(none|table(?!-c[ea]).+)/,
        Pb = new RegExp("^(" + S + ")(.*)$", "i"), Qb = new RegExp("^([+-])=(" + S + ")", "i"),
        Rb = {position: "absolute", visibility: "hidden", display: "block"},
        Sb = {letterSpacing: "0", fontWeight: "400"}, Tb = ["Webkit", "O", "Moz", "ms"];

    function Ub(a, b) {
        if (b in a) return b;
        var c = b.charAt(0).toUpperCase() + b.slice(1), d = b, e = Tb.length;
        while (e--) if (b = Tb[e] + c, b in a) return b;
        return d
    }

    function Vb(a, b) {
        for (var c, d, e, f = [], g = 0, h = a.length; h > g; g++) d = a[g], d.style && (f[g] = m._data(d, "olddisplay"), c = d.style.display, b ? (f[g] || "none" !== c || (d.style.display = ""), "" === d.style.display && U(d) && (f[g] = m._data(d, "olddisplay", Fb(d.nodeName)))) : (e = U(d), (c && "none" !== c || !e) && m._data(d, "olddisplay", e ? c : m.css(d, "display"))));
        for (g = 0; h > g; g++) d = a[g], d.style && (b && "none" !== d.style.display && "" !== d.style.display || (d.style.display = b ? f[g] || "" : "none"));
        return a
    }

    function Wb(a, b, c) {
        var d = Pb.exec(b);
        return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || "px") : b
    }

    function Xb(a, b, c, d, e) {
        for (var f = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0, g = 0; 4 > f; f += 2) "margin" === c && (g += m.css(a, c + T[f], !0, e)), d ? ("content" === c && (g -= m.css(a, "padding" + T[f], !0, e)), "margin" !== c && (g -= m.css(a, "border" + T[f] + "Width", !0, e))) : (g += m.css(a, "padding" + T[f], !0, e), "padding" !== c && (g += m.css(a, "border" + T[f] + "Width", !0, e)));
        return g
    }

    function Yb(a, b, c) {
        var d = !0, e = "width" === b ? a.offsetWidth : a.offsetHeight, f = Ib(a),
            g = k.boxSizing && "border-box" === m.css(a, "boxSizing", !1, f);
        if (0 >= e || null == e) {
            if (e = Jb(a, b, f), (0 > e || null == e) && (e = a.style[b]), Hb.test(e)) return e;
            d = g && (k.boxSizingReliable() || e === a.style[b]), e = parseFloat(e) || 0
        }
        return e + Xb(a, b, c || (g ? "border" : "content"), d, f) + "px"
    }

    m.extend({
        cssHooks: {
            opacity: {
                get: function (a, b) {
                    if (b) {
                        var c = Jb(a, "opacity");
                        return "" === c ? "1" : c
                    }
                }
            }
        },
        cssNumber: {
            columnCount: !0,
            fillOpacity: !0,
            flexGrow: !0,
            flexShrink: !0,
            fontWeight: !0,
            lineHeight: !0,
            opacity: !0,
            order: !0,
            orphans: !0,
            widows: !0,
            zIndex: !0,
            zoom: !0
        },
        cssProps: {"float": k.cssFloat ? "cssFloat" : "styleFloat"},
        style: function (a, b, c, d) {
            if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) {
                var e, f, g, h = m.camelCase(b), i = a.style;
                if (b = m.cssProps[h] || (m.cssProps[h] = Ub(i, h)), g = m.cssHooks[b] || m.cssHooks[h], void 0 === c) return g && "get" in g && void 0 !== (e = g.get(a, !1, d)) ? e : i[b];
                if (f = typeof c, "string" === f && (e = Qb.exec(c)) && (c = (e[1] + 1) * e[2] + parseFloat(m.css(a, b)), f = "number"), null != c && c === c && ("number" !== f || m.cssNumber[h] || (c += "px"), k.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (i[b] = "inherit"), !(g && "set" in g && void 0 === (c = g.set(a, c, d))))) try {
                    i[b] = c
                } catch (j) {
                }
            }
        },
        css: function (a, b, c, d) {
            var e, f, g, h = m.camelCase(b);
            return b = m.cssProps[h] || (m.cssProps[h] = Ub(a.style, h)), g = m.cssHooks[b] || m.cssHooks[h], g && "get" in g && (f = g.get(a, !0, c)), void 0 === f && (f = Jb(a, b, d)), "normal" === f && b in Sb && (f = Sb[b]), "" === c || c ? (e = parseFloat(f), c === !0 || m.isNumeric(e) ? e || 0 : f) : f
        }
    }), m.each(["height", "width"], function (a, b) {
        m.cssHooks[b] = {
            get: function (a, c, d) {
                return c ? Ob.test(m.css(a, "display")) && 0 === a.offsetWidth ? m.swap(a, Rb, function () {
                    return Yb(a, b, d)
                }) : Yb(a, b, d) : void 0
            }, set: function (a, c, d) {
                var e = d && Ib(a);
                return Wb(a, c, d ? Xb(a, b, d, k.boxSizing && "border-box" === m.css(a, "boxSizing", !1, e), e) : 0)
            }
        }
    }), k.opacity || (m.cssHooks.opacity = {
        get: function (a, b) {
            return Nb.test((b && a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : b ? "1" : ""
        }, set: function (a, b) {
            var c = a.style, d = a.currentStyle, e = m.isNumeric(b) ? "alpha(opacity=" + 100 * b + ")" : "",
                f = d && d.filter || c.filter || "";
            c.zoom = 1, (b >= 1 || "" === b) && "" === m.trim(f.replace(Mb, "")) && c.removeAttribute && (c.removeAttribute("filter"), "" === b || d && !d.filter) || (c.filter = Mb.test(f) ? f.replace(Mb, e) : f + " " + e)
        }
    }), m.cssHooks.marginRight = Lb(k.reliableMarginRight, function (a, b) {
        return b ? m.swap(a, {display: "inline-block"}, Jb, [a, "marginRight"]) : void 0
    }), m.each({margin: "", padding: "", border: "Width"}, function (a, b) {
        m.cssHooks[a + b] = {
            expand: function (c) {
                for (var d = 0, e = {}, f = "string" == typeof c ? c.split(" ") : [c]; 4 > d; d++) e[a + T[d] + b] = f[d] || f[d - 2] || f[0];
                return e
            }
        }, Gb.test(a) || (m.cssHooks[a + b].set = Wb)
    }), m.fn.extend({
        css: function (a, b) {
            return V(this, function (a, b, c) {
                var d, e, f = {}, g = 0;
                if (m.isArray(b)) {
                    for (d = Ib(a), e = b.length; e > g; g++) f[b[g]] = m.css(a, b[g], !1, d);
                    return f
                }
                return void 0 !== c ? m.style(a, b, c) : m.css(a, b)
            }, a, b, arguments.length > 1)
        }, show: function () {
            return Vb(this, !0)
        }, hide: function () {
            return Vb(this)
        }, toggle: function (a) {
            return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function () {
                U(this) ? m(this).show() : m(this).hide()
            })
        }
    });

    function Zb(a, b, c, d, e) {
        return new Zb.prototype.init(a, b, c, d, e)
    }

    m.Tween = Zb, Zb.prototype = {
        constructor: Zb, init: function (a, b, c, d, e, f) {
            this.elem = a, this.prop = c, this.easing = e || "swing", this.options = b, this.start = this.now = this.cur(), this.end = d, this.unit = f || (m.cssNumber[c] ? "" : "px")
        }, cur: function () {
            var a = Zb.propHooks[this.prop];
            return a && a.get ? a.get(this) : Zb.propHooks._default.get(this)
        }, run: function (a) {
            var b, c = Zb.propHooks[this.prop];
            return this.pos = b = this.options.duration ? m.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : a, this.now = (this.end - this.start) * b + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), c && c.set ? c.set(this) : Zb.propHooks._default.set(this), this
        }
    }, Zb.prototype.init.prototype = Zb.prototype, Zb.propHooks = {
        _default: {
            get: function (a) {
                var b;
                return null == a.elem[a.prop] || a.elem.style && null != a.elem.style[a.prop] ? (b = m.css(a.elem, a.prop, ""), b && "auto" !== b ? b : 0) : a.elem[a.prop]
            }, set: function (a) {
                m.fx.step[a.prop] ? m.fx.step[a.prop](a) : a.elem.style && (null != a.elem.style[m.cssProps[a.prop]] || m.cssHooks[a.prop]) ? m.style(a.elem, a.prop, a.now + a.unit) : a.elem[a.prop] = a.now
            }
        }
    }, Zb.propHooks.scrollTop = Zb.propHooks.scrollLeft = {
        set: function (a) {
            a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now)
        }
    }, m.easing = {
        linear: function (a) {
            return a
        }, swing: function (a) {
            return .5 - Math.cos(a * Math.PI) / 2
        }
    }, m.fx = Zb.prototype.init, m.fx.step = {};
    var $b, _b, ac = /^(?:toggle|show|hide)$/, bc = new RegExp("^(?:([+-])=|)(" + S + ")([a-z%]*)$", "i"),
        cc = /queueHooks$/, dc = [ic], ec = {
            "*": [function (a, b) {
                var c = this.createTween(a, b), d = c.cur(), e = bc.exec(b), f = e && e[3] || (m.cssNumber[a] ? "" : "px"),
                    g = (m.cssNumber[a] || "px" !== f && +d) && bc.exec(m.css(c.elem, a)), h = 1, i = 20;
                if (g && g[3] !== f) {
                    f = f || g[3], e = e || [], g = +d || 1;
                    do h = h || ".5", g /= h, m.style(c.elem, a, g + f); while (h !== (h = c.cur() / d) && 1 !== h && --i)
                }
                return e && (g = c.start = +g || +d || 0, c.unit = f, c.end = e[1] ? g + (e[1] + 1) * e[2] : +e[2]), c
            }]
        };

    function fc() {
        return setTimeout(function () {
            $b = void 0
        }), $b = m.now()
    }

    function gc(a, b) {
        var c, d = {height: a}, e = 0;
        for (b = b ? 1 : 0; 4 > e; e += 2 - b) c = T[e], d["margin" + c] = d["padding" + c] = a;
        return b && (d.opacity = d.width = a), d
    }

    function hc(a, b, c) {
        for (var d, e = (ec[b] || []).concat(ec["*"]), f = 0, g = e.length; g > f; f++) if (d = e[f].call(c, b, a)) return d
    }

    function ic(a, b, c) {
        var d, e, f, g, h, i, j, l, n = this, o = {}, p = a.style, q = a.nodeType && U(a), r = m._data(a, "fxshow");
        c.queue || (h = m._queueHooks(a, "fx"), null == h.unqueued && (h.unqueued = 0, i = h.empty.fire, h.empty.fire = function () {
            h.unqueued || i()
        }), h.unqueued++, n.always(function () {
            n.always(function () {
                h.unqueued--, m.queue(a, "fx").length || h.empty.fire()
            })
        })), 1 === a.nodeType && ("height" in b || "width" in b) && (c.overflow = [p.overflow, p.overflowX, p.overflowY], j = m.css(a, "display"), l = "none" === j ? m._data(a, "olddisplay") || Fb(a.nodeName) : j, "inline" === l && "none" === m.css(a, "float") && (k.inlineBlockNeedsLayout && "inline" !== Fb(a.nodeName) ? p.zoom = 1 : p.display = "inline-block")), c.overflow && (p.overflow = "hidden", k.shrinkWrapBlocks() || n.always(function () {
            p.overflow = c.overflow[0], p.overflowX = c.overflow[1], p.overflowY = c.overflow[2]
        }));
        for (d in b) if (e = b[d], ac.exec(e)) {
            if (delete b[d], f = f || "toggle" === e, e === (q ? "hide" : "show")) {
                if ("show" !== e || !r || void 0 === r[d]) continue;
                q = !0
            }
            o[d] = r && r[d] || m.style(a, d)
        } else j = void 0;
        if (m.isEmptyObject(o)) "inline" === ("none" === j ? Fb(a.nodeName) : j) && (p.display = j); else {
            r ? "hidden" in r && (q = r.hidden) : r = m._data(a, "fxshow", {}), f && (r.hidden = !q), q ? m(a).show() : n.done(function () {
                m(a).hide()
            }), n.done(function () {
                var b;
                m._removeData(a, "fxshow");
                for (b in o) m.style(a, b, o[b])
            });
            for (d in o) g = hc(q ? r[d] : 0, d, n), d in r || (r[d] = g.start, q && (g.end = g.start, g.start = "width" === d || "height" === d ? 1 : 0))
        }
    }

    function jc(a, b) {
        var c, d, e, f, g;
        for (c in a) if (d = m.camelCase(c), e = b[d], f = a[c], m.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = m.cssHooks[d], g && "expand" in g) {
            f = g.expand(f), delete a[d];
            for (c in f) c in a || (a[c] = f[c], b[c] = e)
        } else b[d] = e
    }

    function kc(a, b, c) {
        var d, e, f = 0, g = dc.length, h = m.Deferred().always(function () {
            delete i.elem
        }), i = function () {
            if (e) return !1;
            for (var b = $b || fc(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; i > g; g++) j.tweens[g].run(f);
            return h.notifyWith(a, [j, f, c]), 1 > f && i ? c : (h.resolveWith(a, [j]), !1)
        }, j = h.promise({
            elem: a,
            props: m.extend({}, b),
            opts: m.extend(!0, {specialEasing: {}}, c),
            originalProperties: b,
            originalOptions: c,
            startTime: $b || fc(),
            duration: c.duration,
            tweens: [],
            createTween: function (b, c) {
                var d = m.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing);
                return j.tweens.push(d), d
            },
            stop: function (b) {
                var c = 0, d = b ? j.tweens.length : 0;
                if (e) return this;
                for (e = !0; d > c; c++) j.tweens[c].run(1);
                return b ? h.resolveWith(a, [j, b]) : h.rejectWith(a, [j, b]), this
            }
        }), k = j.props;
        for (jc(k, j.opts.specialEasing); g > f; f++) if (d = dc[f].call(j, a, k, j.opts)) return d;
        return m.map(k, hc, j), m.isFunction(j.opts.start) && j.opts.start.call(a, j), m.fx.timer(m.extend(i, {
            elem: a,
            anim: j,
            queue: j.opts.queue
        })), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always)
    }

    m.Animation = m.extend(kc, {
        tweener: function (a, b) {
            m.isFunction(a) ? (b = a, a = ["*"]) : a = a.split(" ");
            for (var c, d = 0, e = a.length; e > d; d++) c = a[d], ec[c] = ec[c] || [], ec[c].unshift(b)
        }, prefilter: function (a, b) {
            b ? dc.unshift(a) : dc.push(a)
        }
    }), m.speed = function (a, b, c) {
        var d = a && "object" == typeof a ? m.extend({}, a) : {
            complete: c || !c && b || m.isFunction(a) && a,
            duration: a,
            easing: c && b || b && !m.isFunction(b) && b
        };
        return d.duration = m.fx.off ? 0 : "number" == typeof d.duration ? d.duration : d.duration in m.fx.speeds ? m.fx.speeds[d.duration] : m.fx.speeds._default, (null == d.queue || d.queue === !0) && (d.queue = "fx"), d.old = d.complete, d.complete = function () {
            m.isFunction(d.old) && d.old.call(this), d.queue && m.dequeue(this, d.queue)
        }, d
    }, m.fn.extend({
        fadeTo: function (a, b, c, d) {
            return this.filter(U).css("opacity", 0).show().end().animate({opacity: b}, a, c, d)
        }, animate: function (a, b, c, d) {
            var e = m.isEmptyObject(a), f = m.speed(b, c, d), g = function () {
                var b = kc(this, m.extend({}, a), f);
                (e || m._data(this, "finish")) && b.stop(!0)
            };
            return g.finish = g, e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g)
        }, stop: function (a, b, c) {
            var d = function (a) {
                var b = a.stop;
                delete a.stop, b(c)
            };
            return "string" != typeof a && (c = b, b = a, a = void 0), b && a !== !1 && this.queue(a || "fx", []), this.each(function () {
                var b = !0, e = null != a && a + "queueHooks", f = m.timers, g = m._data(this);
                if (e) g[e] && g[e].stop && d(g[e]); else for (e in g) g[e] && g[e].stop && cc.test(e) && d(g[e]);
                for (e = f.length; e--;) f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1));
                (b || !c) && m.dequeue(this, a)
            })
        }, finish: function (a) {
            return a !== !1 && (a = a || "fx"), this.each(function () {
                var b, c = m._data(this), d = c[a + "queue"], e = c[a + "queueHooks"], f = m.timers,
                    g = d ? d.length : 0;
                for (c.finish = !0, m.queue(this, a, []), e && e.stop && e.stop.call(this, !0), b = f.length; b--;) f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1));
                for (b = 0; g > b; b++) d[b] && d[b].finish && d[b].finish.call(this);
                delete c.finish
            })
        }
    }), m.each(["toggle", "show", "hide"], function (a, b) {
        var c = m.fn[b];
        m.fn[b] = function (a, d, e) {
            return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(gc(b, !0), a, d, e)
        }
    }), m.each({
        slideDown: gc("show"),
        slideUp: gc("hide"),
        slideToggle: gc("toggle"),
        fadeIn: {opacity: "show"},
        fadeOut: {opacity: "hide"},
        fadeToggle: {opacity: "toggle"}
    }, function (a, b) {
        m.fn[a] = function (a, c, d) {
            return this.animate(b, a, c, d)
        }
    }), m.timers = [], m.fx.tick = function () {
        var a, b = m.timers, c = 0;
        for ($b = m.now(); c < b.length; c++) a = b[c], a() || b[c] !== a || b.splice(c--, 1);
        b.length || m.fx.stop(), $b = void 0
    }, m.fx.timer = function (a) {
        m.timers.push(a), a() ? m.fx.start() : m.timers.pop()
    }, m.fx.interval = 13, m.fx.start = function () {
        _b || (_b = setInterval(m.fx.tick, m.fx.interval))
    }, m.fx.stop = function () {
        clearInterval(_b), _b = null
    }, m.fx.speeds = {slow: 600, fast: 200, _default: 400}, m.fn.delay = function (a, b) {
        return a = m.fx ? m.fx.speeds[a] || a : a, b = b || "fx", this.queue(b, function (b, c) {
            var d = setTimeout(b, a);
            c.stop = function () {
                clearTimeout(d)
            }
        })
    }, function () {
        var a, b, c, d, e;
        b = y.createElement("div"), b.setAttribute("className", "t"), b.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", d = b.getElementsByTagName("a")[0], c = y.createElement("select"), e = c.appendChild(y.createElement("option")), a = b.getElementsByTagName("input")[0], d.style.cssText = "top:1px", k.getSetAttribute = "t" !== b.className, k.style = /top/.test(d.getAttribute("style")), k.hrefNormalized = "/a" === d.getAttribute("href"), k.checkOn = !!a.value, k.optSelected = e.selected, k.enctype = !!y.createElement("form").enctype, c.disabled = !0, k.optDisabled = !e.disabled, a = y.createElement("input"), a.setAttribute("value", ""), k.input = "" === a.getAttribute("value"), a.value = "t", a.setAttribute("type", "radio"), k.radioValue = "t" === a.value
    }();
    var lc = /\r/g;
    m.fn.extend({
        val: function (a) {
            var b, c, d, e = this[0];
            {
                if (arguments.length) return d = m.isFunction(a), this.each(function (c) {
                    var e;
                    1 === this.nodeType && (e = d ? a.call(this, c, m(this).val()) : a, null == e ? e = "" : "number" == typeof e ? e += "" : m.isArray(e) && (e = m.map(e, function (a) {
                        return null == a ? "" : a + ""
                    })), b = m.valHooks[this.type] || m.valHooks[this.nodeName.toLowerCase()], b && "set" in b && void 0 !== b.set(this, e, "value") || (this.value = e))
                });
                if (e) return b = m.valHooks[e.type] || m.valHooks[e.nodeName.toLowerCase()], b && "get" in b && void 0 !== (c = b.get(e, "value")) ? c : (c = e.value, "string" == typeof c ? c.replace(lc, "") : null == c ? "" : c)
            }
        }
    }), m.extend({
        valHooks: {
            option: {
                get: function (a) {
                    var b = m.find.attr(a, "value");
                    return null != b ? b : m.trim(m.text(a))
                }
            }, select: {
                get: function (a) {
                    for (var b, c, d = a.options, e = a.selectedIndex, f = "select-one" === a.type || 0 > e, g = f ? null : [], h = f ? e + 1 : d.length, i = 0 > e ? h : f ? e : 0; h > i; i++) if (c = d[i], !(!c.selected && i !== e || (k.optDisabled ? c.disabled : null !== c.getAttribute("disabled")) || c.parentNode.disabled && m.nodeName(c.parentNode, "optgroup"))) {
                        if (b = m(c).val(), f) return b;
                        g.push(b)
                    }
                    return g
                }, set: function (a, b) {
                    var c, d, e = a.options, f = m.makeArray(b), g = e.length;
                    while (g--) if (d = e[g], m.inArray(m.valHooks.option.get(d), f) >= 0) try {
                        d.selected = c = !0
                    } catch (h) {
                        d.scrollHeight
                    } else d.selected = !1;
                    return c || (a.selectedIndex = -1), e
                }
            }
        }
    }), m.each(["radio", "checkbox"], function () {
        m.valHooks[this] = {
            set: function (a, b) {
                return m.isArray(b) ? a.checked = m.inArray(m(a).val(), b) >= 0 : void 0
            }
        }, k.checkOn || (m.valHooks[this].get = function (a) {
            return null === a.getAttribute("value") ? "on" : a.value
        })
    });
    var mc, nc, oc = m.expr.attrHandle, pc = /^(?:checked|selected)$/i, qc = k.getSetAttribute, rc = k.input;
    m.fn.extend({
        attr: function (a, b) {
            return V(this, m.attr, a, b, arguments.length > 1)
        }, removeAttr: function (a) {
            return this.each(function () {
                m.removeAttr(this, a)
            })
        }
    }), m.extend({
        attr: function (a, b, c) {
            var d, e, f = a.nodeType;
            if (a && 3 !== f && 8 !== f && 2 !== f) return typeof a.getAttribute === K ? m.prop(a, b, c) : (1 === f && m.isXMLDoc(a) || (b = b.toLowerCase(), d = m.attrHooks[b] || (m.expr.match.bool.test(b) ? nc : mc)), void 0 === c ? d && "get" in d && null !== (e = d.get(a, b)) ? e : (e = m.find.attr(a, b), null == e ? void 0 : e) : null !== c ? d && "set" in d && void 0 !== (e = d.set(a, c, b)) ? e : (a.setAttribute(b, c + ""), c) : void m.removeAttr(a, b))
        }, removeAttr: function (a, b) {
            var c, d, e = 0, f = b && b.match(E);
            if (f && 1 === a.nodeType) while (c = f[e++]) d = m.propFix[c] || c, m.expr.match.bool.test(c) ? rc && qc || !pc.test(c) ? a[d] = !1 : a[m.camelCase("default-" + c)] = a[d] = !1 : m.attr(a, c, ""), a.removeAttribute(qc ? c : d)
        }, attrHooks: {
            type: {
                set: function (a, b) {
                    if (!k.radioValue && "radio" === b && m.nodeName(a, "input")) {
                        var c = a.value;
                        return a.setAttribute("type", b), c && (a.value = c), b
                    }
                }
            }
        }
    }), nc = {
        set: function (a, b, c) {
            return b === !1 ? m.removeAttr(a, c) : rc && qc || !pc.test(c) ? a.setAttribute(!qc && m.propFix[c] || c, c) : a[m.camelCase("default-" + c)] = a[c] = !0, c
        }
    }, m.each(m.expr.match.bool.source.match(/\w+/g), function (a, b) {
        var c = oc[b] || m.find.attr;
        oc[b] = rc && qc || !pc.test(b) ? function (a, b, d) {
            var e, f;
            return d || (f = oc[b], oc[b] = e, e = null != c(a, b, d) ? b.toLowerCase() : null, oc[b] = f), e
        } : function (a, b, c) {
            return c ? void 0 : a[m.camelCase("default-" + b)] ? b.toLowerCase() : null
        }
    }), rc && qc || (m.attrHooks.value = {
        set: function (a, b, c) {
            return m.nodeName(a, "input") ? void (a.defaultValue = b) : mc && mc.set(a, b, c)
        }
    }), qc || (mc = {
        set: function (a, b, c) {
            var d = a.getAttributeNode(c);
            return d || a.setAttributeNode(d = a.ownerDocument.createAttribute(c)), d.value = b += "", "value" === c || b === a.getAttribute(c) ? b : void 0
        }
    }, oc.id = oc.name = oc.coords = function (a, b, c) {
        var d;
        return c ? void 0 : (d = a.getAttributeNode(b)) && "" !== d.value ? d.value : null
    }, m.valHooks.button = {
        get: function (a, b) {
            var c = a.getAttributeNode(b);
            return c && c.specified ? c.value : void 0
        }, set: mc.set
    }, m.attrHooks.contenteditable = {
        set: function (a, b, c) {
            mc.set(a, "" === b ? !1 : b, c)
        }
    }, m.each(["width", "height"], function (a, b) {
        m.attrHooks[b] = {
            set: function (a, c) {
                return "" === c ? (a.setAttribute(b, "auto"), c) : void 0
            }
        }
    })), k.style || (m.attrHooks.style = {
        get: function (a) {
            return a.style.cssText || void 0
        }, set: function (a, b) {
            return a.style.cssText = b + ""
        }
    });
    var sc = /^(?:input|select|textarea|button|object)$/i, tc = /^(?:a|area)$/i;
    m.fn.extend({
        prop: function (a, b) {
            return V(this, m.prop, a, b, arguments.length > 1)
        }, removeProp: function (a) {
            return a = m.propFix[a] || a, this.each(function () {
                try {
                    this[a] = void 0, delete this[a]
                } catch (b) {
                }
            })
        }
    }), m.extend({
        propFix: {"for": "htmlFor", "class": "className"}, prop: function (a, b, c) {
            var d, e, f, g = a.nodeType;
            if (a && 3 !== g && 8 !== g && 2 !== g) return f = 1 !== g || !m.isXMLDoc(a), f && (b = m.propFix[b] || b, e = m.propHooks[b]), void 0 !== c ? e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && "get" in e && null !== (d = e.get(a, b)) ? d : a[b]
        }, propHooks: {
            tabIndex: {
                get: function (a) {
                    var b = m.find.attr(a, "tabindex");
                    return b ? parseInt(b, 10) : sc.test(a.nodeName) || tc.test(a.nodeName) && a.href ? 0 : -1
                }
            }
        }
    }), k.hrefNormalized || m.each(["href", "src"], function (a, b) {
        m.propHooks[b] = {
            get: function (a) {
                return a.getAttribute(b, 4)
            }
        }
    }), k.optSelected || (m.propHooks.selected = {
        get: function (a) {
            var b = a.parentNode;
            return b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex), null
        }
    }), m.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () {
        m.propFix[this.toLowerCase()] = this
    }), k.enctype || (m.propFix.enctype = "encoding");
    var uc = /[\t\r\n\f]/g;
    m.fn.extend({
        addClass: function (a) {
            var b, c, d, e, f, g, h = 0, i = this.length, j = "string" == typeof a && a;
            if (m.isFunction(a)) return this.each(function (b) {
                m(this).addClass(a.call(this, b, this.className))
            });
            if (j) for (b = (a || "").match(E) || []; i > h; h++) if (c = this[h], d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(uc, " ") : " ")) {
                f = 0;
                while (e = b[f++]) d.indexOf(" " + e + " ") < 0 && (d += e + " ");
                g = m.trim(d), c.className !== g && (c.className = g)
            }
            return this
        }, removeClass: function (a) {
            var b, c, d, e, f, g, h = 0, i = this.length, j = 0 === arguments.length || "string" == typeof a && a;
            if (m.isFunction(a)) return this.each(function (b) {
                m(this).removeClass(a.call(this, b, this.className))
            });
            if (j) for (b = (a || "").match(E) || []; i > h; h++) if (c = this[h], d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(uc, " ") : "")) {
                f = 0;
                while (e = b[f++]) while (d.indexOf(" " + e + " ") >= 0) d = d.replace(" " + e + " ", " ");
                g = a ? m.trim(d) : "", c.className !== g && (c.className = g)
            }
            return this
        }, toggleClass: function (a, b) {
            var c = typeof a;
            return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : this.each(m.isFunction(a) ? function (c) {
                m(this).toggleClass(a.call(this, c, this.className, b), b)
            } : function () {
                if ("string" === c) {
                    var b, d = 0, e = m(this), f = a.match(E) || [];
                    while (b = f[d++]) e.hasClass(b) ? e.removeClass(b) : e.addClass(b)
                } else (c === K || "boolean" === c) && (this.className && m._data(this, "__className__", this.className), this.className = this.className || a === !1 ? "" : m._data(this, "__className__") || "")
            })
        }, hasClass: function (a) {
            for (var b = " " + a + " ", c = 0, d = this.length; d > c; c++) if (1 === this[c].nodeType && (" " + this[c].className + " ").replace(uc, " ").indexOf(b) >= 0) return !0;
            return !1
        }
    }), m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function (a, b) {
        m.fn[b] = function (a, c) {
            return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b)
        }
    }), m.fn.extend({
        hover: function (a, b) {
            return this.mouseenter(a).mouseleave(b || a)
        }, bind: function (a, b, c) {
            return this.on(a, null, b, c)
        }, unbind: function (a, b) {
            return this.off(a, null, b)
        }, delegate: function (a, b, c, d) {
            return this.on(b, a, c, d)
        }, undelegate: function (a, b, c) {
            return 1 === arguments.length ? this.off(a, "**") : this.off(b, a || "**", c)
        }
    });
    var vc = m.now(), wc = /\?/,
        xc = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
    m.parseJSON = function (b) {
        if (a.JSON && a.JSON.parse) return a.JSON.parse(b + "");
        var c, d = null, e = m.trim(b + "");
        return e && !m.trim(e.replace(xc, function (a, b, e, f) {
            return c && b && (d = 0), 0 === d ? a : (c = e || b, d += !f - !e, "")
        })) ? Function("return " + e)() : m.error("Invalid JSON: " + b)
    }, m.parseXML = function (b) {
        var c, d;
        if (!b || "string" != typeof b) return null;
        try {
            a.DOMParser ? (d = new DOMParser, c = d.parseFromString(b, "text/xml")) : (c = new ActiveXObject("Microsoft.XMLDOM"), c.async = "false", c.loadXML(b))
        } catch (e) {
            c = void 0
        }
        return c && c.documentElement && !c.getElementsByTagName("parsererror").length || m.error("Invalid XML: " + b), c
    };
    var yc, zc, Ac = /#.*$/, Bc = /([?&])_=[^&]*/, Cc = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
        Dc = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, Ec = /^(?:GET|HEAD)$/, Fc = /^\/\//,
        Gc = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, Hc = {}, Ic = {}, Jc = "*/".concat("*");
    try {
        zc = location.href
    } catch (Kc) {
        zc = y.createElement("a"), zc.href = "", zc = zc.href
    }
    yc = Gc.exec(zc.toLowerCase()) || [];

    function Lc(a) {
        return function (b, c) {
            "string" != typeof b && (c = b, b = "*");
            var d, e = 0, f = b.toLowerCase().match(E) || [];
            if (m.isFunction(c)) while (d = f[e++]) "+" === d.charAt(0) ? (d = d.slice(1) || "*", (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c)
        }
    }

    function Mc(a, b, c, d) {
        var e = {}, f = a === Ic;

        function g(h) {
            var i;
            return e[h] = !0, m.each(a[h] || [], function (a, h) {
                var j = h(b, c, d);
                return "string" != typeof j || f || e[j] ? f ? !(i = j) : void 0 : (b.dataTypes.unshift(j), g(j), !1)
            }), i
        }

        return g(b.dataTypes[0]) || !e["*"] && g("*")
    }

    function Nc(a, b) {
        var c, d, e = m.ajaxSettings.flatOptions || {};
        for (d in b) void 0 !== b[d] && ((e[d] ? a : c || (c = {}))[d] = b[d]);
        return c && m.extend(!0, a, c), a
    }

    function Oc(a, b, c) {
        var d, e, f, g, h = a.contents, i = a.dataTypes;
        while ("*" === i[0]) i.shift(), void 0 === e && (e = a.mimeType || b.getResponseHeader("Content-Type"));
        if (e) for (g in h) if (h[g] && h[g].test(e)) {
            i.unshift(g);
            break
        }
        if (i[0] in c) f = i[0]; else {
            for (g in c) {
                if (!i[0] || a.converters[g + " " + i[0]]) {
                    f = g;
                    break
                }
                d || (d = g)
            }
            f = f || d
        }
        return f ? (f !== i[0] && i.unshift(f), c[f]) : void 0
    }

    function Pc(a, b, c, d) {
        var e, f, g, h, i, j = {}, k = a.dataTypes.slice();
        if (k[1]) for (g in a.converters) j[g.toLowerCase()] = a.converters[g];
        f = k.shift();
        while (f) if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift()) if ("*" === f) f = i; else if ("*" !== i && i !== f) {
            if (g = j[i + " " + f] || j["* " + f], !g) for (e in j) if (h = e.split(" "), h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) {
                g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], k.unshift(h[1]));
                break
            }
            if (g !== !0) if (g && a["throws"]) b = g(b); else try {
                b = g(b)
            } catch (l) {
                return {state: "parsererror", error: g ? l : "No conversion from " + i + " to " + f}
            }
        }
        return {state: "success", data: b}
    }

    m.extend({
        active: 0,
        lastModified: {},
        etag: {},
        ajaxSettings: {
            url: zc,
            type: "GET",
            isLocal: Dc.test(yc[1]),
            global: !0,
            processData: !0,
            async: !0,
            contentType: "application/x-www-form-urlencoded; charset=GBK",
            accepts: {
                "*": Jc,
                text: "text/plain",
                html: "text/html",
                xml: "application/xml, text/xml",
                json: "application/json, text/javascript"
            },
            contents: {xml: /xml/, html: /html/, json: /json/},
            responseFields: {xml: "responseXML", text: "responseText", json: "responseJSON"},
            converters: {"* text": String, "text html": !0, "text json": m.parseJSON, "text xml": m.parseXML},
            flatOptions: {url: !0, context: !0}
        },
        ajaxSetup: function (a, b) {
            return b ? Nc(Nc(a, m.ajaxSettings), b) : Nc(m.ajaxSettings, a)
        },
        ajaxPrefilter: Lc(Hc),
        ajaxTransport: Lc(Ic),
        ajax: function (a, b) {
            "object" == typeof a && (b = a, a = void 0), b = b || {};
            var c, d, e, f, g, h, i, j, k = m.ajaxSetup({}, b), l = k.context || k,
                n = k.context && (l.nodeType || l.jquery) ? m(l) : m.event, o = m.Deferred(),
                p = m.Callbacks("once memory"), q = k.statusCode || {}, r = {}, s = {}, t = 0, u = "canceled", v = {
                    readyState: 0, getResponseHeader: function (a) {
                        var b;
                        if (2 === t) {
                            if (!j) {
                                j = {};
                                while (b = Cc.exec(f)) j[b[1].toLowerCase()] = b[2]
                            }
                            b = j[a.toLowerCase()]
                        }
                        return null == b ? null : b
                    }, getAllResponseHeaders: function () {
                        return 2 === t ? f : null
                    }, setRequestHeader: function (a, b) {
                        var c = a.toLowerCase();
                        return t || (a = s[c] = s[c] || a, r[a] = b), this
                    }, overrideMimeType: function (a) {
                        return t || (k.mimeType = a), this
                    }, statusCode: function (a) {
                        var b;
                        if (a) if (2 > t) for (b in a) q[b] = [q[b], a[b]]; else v.always(a[v.status]);
                        return this
                    }, abort: function (a) {
                        var b = a || u;
                        return i && i.abort(b), x(0, b), this
                    }
                };
            if (o.promise(v).complete = p.add, v.success = v.done, v.error = v.fail, k.url = ((a || k.url || zc) + "").replace(Ac, "").replace(Fc, yc[1] + "//"), k.type = b.method || b.type || k.method || k.type, k.dataTypes = m.trim(k.dataType || "*").toLowerCase().match(E) || [""], null == k.crossDomain && (c = Gc.exec(k.url.toLowerCase()), k.crossDomain = !(!c || c[1] === yc[1] && c[2] === yc[2] && (c[3] || ("http:" === c[1] ? "80" : "443")) === (yc[3] || ("http:" === yc[1] ? "80" : "443")))), k.data && k.processData && "string" != typeof k.data && (k.data = m.param(k.data, k.traditional)), Mc(Hc, k, b, v), 2 === t) return v;
            h = k.global, h && 0 === m.active++ && m.event.trigger("ajaxStart"), k.type = k.type.toUpperCase(), k.hasContent = !Ec.test(k.type), e = k.url, k.hasContent || (k.data && (e = k.url += (wc.test(e) ? "&" : "?") + k.data, delete k.data), k.cache === !1 && (k.url = Bc.test(e) ? e.replace(Bc, "$1_=" + vc++) : e + (wc.test(e) ? "&" : "?") + "_=" + vc++)), k.ifModified && (m.lastModified[e] && v.setRequestHeader("If-Modified-Since", m.lastModified[e]), m.etag[e] && v.setRequestHeader("If-None-Match", m.etag[e])), (k.data && k.hasContent && k.contentType !== !1 || b.contentType) && v.setRequestHeader("Content-Type", k.contentType), v.setRequestHeader("Accept", k.dataTypes[0] && k.accepts[k.dataTypes[0]] ? k.accepts[k.dataTypes[0]] + ("*" !== k.dataTypes[0] ? ", " + Jc + "; q=0.01" : "") : k.accepts["*"]);
            for (d in k.headers) v.setRequestHeader(d, k.headers[d]);
            if (k.beforeSend && (k.beforeSend.call(l, v, k) === !1 || 2 === t)) return v.abort();
            u = "abort";
            for (d in {success: 1, error: 1, complete: 1}) v[d](k[d]);
            if (i = Mc(Ic, k, b, v)) {
                v.readyState = 1, h && n.trigger("ajaxSend", [v, k]), k.async && k.timeout > 0 && (g = setTimeout(function () {
                    v.abort("timeout")
                }, k.timeout));
                try {
                    t = 1, i.send(r, x)
                } catch (w) {
                    if (!(2 > t)) throw w;
                    x(-1, w)
                }
            } else x(-1, "No Transport");

            function x(a, b, c, d) {
                var j, r, s, u, w, x = b;
                2 !== t && (t = 2, g && clearTimeout(g), i = void 0, f = d || "", v.readyState = a > 0 ? 4 : 0, j = a >= 200 && 300 > a || 304 === a, c && (u = Oc(k, v, c)), u = Pc(k, u, v, j), j ? (k.ifModified && (w = v.getResponseHeader("Last-Modified"), w && (m.lastModified[e] = w), w = v.getResponseHeader("etag"), w && (m.etag[e] = w)), 204 === a || "HEAD" === k.type ? x = "nocontent" : 304 === a ? x = "notmodified" : (x = u.state, r = u.data, s = u.error, j = !s)) : (s = x, (a || !x) && (x = "error", 0 > a && (a = 0))), v.status = a, v.statusText = (b || x) + "", j ? o.resolveWith(l, [r, x, v]) : o.rejectWith(l, [v, x, s]), v.statusCode(q), q = void 0, h && n.trigger(j ? "ajaxSuccess" : "ajaxError", [v, k, j ? r : s]), p.fireWith(l, [v, x]), h && (n.trigger("ajaxComplete", [v, k]), --m.active || m.event.trigger("ajaxStop")))
            }

            return v
        },
        getJSON: function (a, b, c) {
            return m.get(a, b, c, "json")
        },
        getScript: function (a, b) {
            return m.get(a, void 0, b, "script")
        }
    }), m.each(["get", "post"], function (a, b) {
        m[b] = function (a, c, d, e) {
            return m.isFunction(c) && (e = e || d, d = c, c = void 0), m.ajax({
                url: a,
                type: b,
                dataType: e,
                data: c,
                success: d
            })
        }
    }), m.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (a, b) {
        m.fn[b] = function (a) {
            return this.on(b, a)
        }
    }), m._evalUrl = function (a) {
        return m.ajax({url: a, type: "GET", dataType: "script", async: !1, global: !1, "throws": !0})
    }, m.fn.extend({
        wrapAll: function (a) {
            if (m.isFunction(a)) return this.each(function (b) {
                m(this).wrapAll(a.call(this, b))
            });
            if (this[0]) {
                var b = m(a, this[0].ownerDocument).eq(0).clone(!0);
                this[0].parentNode && b.insertBefore(this[0]), b.map(function () {
                    var a = this;
                    while (a.firstChild && 1 === a.firstChild.nodeType) a = a.firstChild;
                    return a
                }).append(this)
            }
            return this
        }, wrapInner: function (a) {
            return this.each(m.isFunction(a) ? function (b) {
                m(this).wrapInner(a.call(this, b))
            } : function () {
                var b = m(this), c = b.contents();
                c.length ? c.wrapAll(a) : b.append(a)
            })
        }, wrap: function (a) {
            var b = m.isFunction(a);
            return this.each(function (c) {
                m(this).wrapAll(b ? a.call(this, c) : a)
            })
        }, unwrap: function () {
            return this.parent().each(function () {
                m.nodeName(this, "body") || m(this).replaceWith(this.childNodes)
            }).end()
        }
    }), m.expr.filters.hidden = function (a) {
        return a.offsetWidth <= 0 && a.offsetHeight <= 0 || !k.reliableHiddenOffsets() && "none" === (a.style && a.style.display || m.css(a, "display"))
    }, m.expr.filters.visible = function (a) {
        return !m.expr.filters.hidden(a)
    };
    var Qc = /%20/g, Rc = /\[\]$/, Sc = /\r?\n/g, Tc = /^(?:submit|button|image|reset|file)$/i,
        Uc = /^(?:input|select|textarea|keygen)/i;

    function Vc(a, b, c, d) {
        var e;
        if (m.isArray(b)) m.each(b, function (b, e) {
            c || Rc.test(a) ? d(a, e) : Vc(a + "[" + ("object" == typeof e ? b : "") + "]", e, c, d)
        }); else if (c || "object" !== m.type(b)) d(a, b); else for (e in b) Vc(a + "[" + e + "]", b[e], c, d)
    }

    m.param = function (a, b) {
        var c, d = [], e = function (a, b) {
            b = m.isFunction(b) ? b() : null == b ? "" : b, d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b)
        };
        if (void 0 === b && (b = m.ajaxSettings && m.ajaxSettings.traditional), m.isArray(a) || a.jquery && !m.isPlainObject(a)) m.each(a, function () {
            e(this.name, this.value)
        }); else for (c in a) Vc(c, a[c], b, e);
        return d.join("&").replace(Qc, "+")
    }, m.fn.extend({
        serialize: function () {
            return m.param(this.serializeArray())
        }, serializeArray: function () {
            return this.map(function () {
                var a = m.prop(this, "elements");
                return a ? m.makeArray(a) : this
            }).filter(function () {
                var a = this.type;
                return this.name && !m(this).is(":disabled") && Uc.test(this.nodeName) && !Tc.test(a) && (this.checked || !W.test(a))
            }).map(function (a, b) {
                var c = m(this).val();
                return null == c ? null : m.isArray(c) ? m.map(c, function (a) {
                    return {name: b.name, value: a.replace(Sc, "\r\n")}
                }) : {name: b.name, value: c.replace(Sc, "\r\n")}
            }).get()
        }
    }), m.ajaxSettings.xhr = void 0 !== a.ActiveXObject ? function () {
        return !this.isLocal && /^(get|post|head|put|delete|options)$/i.test(this.type) && Zc() || $c()
    } : Zc;
    var Wc = 0, Xc = {}, Yc = m.ajaxSettings.xhr();
    a.ActiveXObject && m(a).on("unload", function () {
        for (var a in Xc) Xc[a](void 0, !0)
    }), k.cors = !!Yc && "withCredentials" in Yc, Yc = k.ajax = !!Yc, Yc && m.ajaxTransport(function (a) {
        if (!a.crossDomain || k.cors) {
            var b;
            return {
                send: function (c, d) {
                    var e, f = a.xhr(), g = ++Wc;
                    if (f.open(a.type, a.url, a.async, a.username, a.password), a.xhrFields) for (e in a.xhrFields) f[e] = a.xhrFields[e];
                    a.mimeType && f.overrideMimeType && f.overrideMimeType(a.mimeType), a.crossDomain || c["X-Requested-With"] || (c["X-Requested-With"] = "XMLHttpRequest");
                    for (e in c) void 0 !== c[e] && f.setRequestHeader(e, c[e] + "");
                    f.send(a.hasContent && a.data || null), b = function (c, e) {
                        var h, i, j;
                        if (b && (e || 4 === f.readyState)) if (delete Xc[g], b = void 0, f.onreadystatechange = m.noop, e) 4 !== f.readyState && f.abort(); else {
                            j = {}, h = f.status, "string" == typeof f.responseText && (j.text = f.responseText);
                            try {
                                i = f.statusText
                            } catch (k) {
                                i = ""
                            }
                            h || !a.isLocal || a.crossDomain ? 1223 === h && (h = 204) : h = j.text ? 200 : 404
                        }
                        j && d(h, i, j, f.getAllResponseHeaders())
                    }, a.async ? 4 === f.readyState ? setTimeout(b) : f.onreadystatechange = Xc[g] = b : b()
                }, abort: function () {
                    b && b(void 0, !0)
                }
            }
        }
    });

    function Zc() {
        try {
            return new a.XMLHttpRequest
        } catch (b) {
        }
    }

    function $c() {
        try {
            return new a.ActiveXObject("Microsoft.XMLHTTP")
        } catch (b) {
        }
    }

    m.ajaxSetup({
        accepts: {script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},
        contents: {script: /(?:java|ecma)script/},
        converters: {
            "text script": function (a) {
                return m.globalEval(a), a
            }
        }
    }), m.ajaxPrefilter("script", function (a) {
        void 0 === a.cache && (a.cache = !1), a.crossDomain && (a.type = "GET", a.global = !1)
    }), m.ajaxTransport("script", function (a) {
        if (a.crossDomain) {
            var b, c = y.head || m("head")[0] || y.documentElement;
            return {
                send: function (d, e) {
                    b = y.createElement("script"), b.async = !0, a.scriptCharset && (b.charset = a.scriptCharset), b.src = a.url, b.onload = b.onreadystatechange = function (a, c) {
                        (c || !b.readyState || /loaded|complete/.test(b.readyState)) && (b.onload = b.onreadystatechange = null, b.parentNode && b.parentNode.removeChild(b), b = null, c || e(200, "success"))
                    }, c.insertBefore(b, c.firstChild)
                }, abort: function () {
                    b && b.onload(void 0, !0)
                }
            }
        }
    });
    var _c = [], ad = /(=)\?(?=&|$)|\?\?/;
    m.ajaxSetup({
        jsonp: "callback", jsonpCallback: function () {
            var a = _c.pop() || m.expando + "_" + vc++;
            return this[a] = !0, a
        }
    }), m.ajaxPrefilter("json jsonp", function (b, c, d) {
        var e, f, g,
            h = b.jsonp !== !1 && (ad.test(b.url) ? "url" : "string" == typeof b.data && !(b.contentType || "").indexOf("application/x-www-form-urlencoded") && ad.test(b.data) && "data");
        return h || "jsonp" === b.dataTypes[0] ? (e = b.jsonpCallback = m.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, h ? b[h] = b[h].replace(ad, "$1" + e) : b.jsonp !== !1 && (b.url += (wc.test(b.url) ? "&" : "?") + b.jsonp + "=" + e), b.converters["script json"] = function () {
            return g || m.error(e + " was not called"), g[0]
        }, b.dataTypes[0] = "json", f = a[e], a[e] = function () {
            g = arguments
        }, d.always(function () {
            a[e] = f, b[e] && (b.jsonpCallback = c.jsonpCallback, _c.push(e)), g && m.isFunction(f) && f(g[0]), g = f = void 0
        }), "script") : void 0
    }), m.parseHTML = function (a, b, c) {
        if (!a || "string" != typeof a) return null;
        "boolean" == typeof b && (c = b, b = !1), b = b || y;
        var d = u.exec(a), e = !c && [];
        return d ? [b.createElement(d[1])] : (d = m.buildFragment([a], b, e), e && e.length && m(e).remove(), m.merge([], d.childNodes))
    };
    var bd = m.fn.load;
    m.fn.load = function (a, b, c) {
        if ("string" != typeof a && bd) return bd.apply(this, arguments);
        var d, e, f, g = this, h = a.indexOf(" ");
        return h >= 0 && (d = m.trim(a.slice(h, a.length)), a = a.slice(0, h)), m.isFunction(b) ? (c = b, b = void 0) : b && "object" == typeof b && (f = "POST"), g.length > 0 && m.ajax({
            url: a,
            type: f,
            dataType: "html",
            data: b
        }).done(function (a) {
            e = arguments, g.html(d ? m("<div>").append(m.parseHTML(a)).find(d) : a)
        }).complete(c && function (a, b) {
            g.each(c, e || [a.responseText, b, a])
        }), this
    }, m.expr.filters.animated = function (a) {
        return m.grep(m.timers, function (b) {
            return a === b.elem
        }).length
    };
    var cd = a.document.documentElement;

    function dd(a) {
        return m.isWindow(a) ? a : 9 === a.nodeType ? a.defaultView || a.parentWindow : !1
    }

    m.offset = {
        setOffset: function (a, b, c) {
            var d, e, f, g, h, i, j, k = m.css(a, "position"), l = m(a), n = {};
            "static" === k && (a.style.position = "relative"), h = l.offset(), f = m.css(a, "top"), i = m.css(a, "left"), j = ("absolute" === k || "fixed" === k) && m.inArray("auto", [f, i]) > -1, j ? (d = l.position(), g = d.top, e = d.left) : (g = parseFloat(f) || 0, e = parseFloat(i) || 0), m.isFunction(b) && (b = b.call(a, c, h)), null != b.top && (n.top = b.top - h.top + g), null != b.left && (n.left = b.left - h.left + e), "using" in b ? b.using.call(a, n) : l.css(n)
        }
    }, m.fn.extend({
        offset: function (a) {
            if (arguments.length) return void 0 === a ? this : this.each(function (b) {
                m.offset.setOffset(this, a, b)
            });
            var b, c, d = {top: 0, left: 0}, e = this[0], f = e && e.ownerDocument;
            if (f) return b = f.documentElement, m.contains(b, e) ? (typeof e.getBoundingClientRect !== K && (d = e.getBoundingClientRect()), c = dd(f), {
                top: d.top + (c.pageYOffset || b.scrollTop) - (b.clientTop || 0),
                left: d.left + (c.pageXOffset || b.scrollLeft) - (b.clientLeft || 0)
            }) : d
        }, position: function () {
            if (this[0]) {
                var a, b, c = {top: 0, left: 0}, d = this[0];
                return "fixed" === m.css(d, "position") ? b = d.getBoundingClientRect() : (a = this.offsetParent(), b = this.offset(), m.nodeName(a[0], "html") || (c = a.offset()), c.top += m.css(a[0], "borderTopWidth", !0), c.left += m.css(a[0], "borderLeftWidth", !0)), {
                    top: b.top - c.top - m.css(d, "marginTop", !0),
                    left: b.left - c.left - m.css(d, "marginLeft", !0)
                }
            }
        }, offsetParent: function () {
            return this.map(function () {
                var a = this.offsetParent || cd;
                while (a && !m.nodeName(a, "html") && "static" === m.css(a, "position")) a = a.offsetParent;
                return a || cd
            })
        }
    }), m.each({scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function (a, b) {
        var c = /Y/.test(b);
        m.fn[a] = function (d) {
            return V(this, function (a, d, e) {
                var f = dd(a);
                return void 0 === e ? f ? b in f ? f[b] : f.document.documentElement[d] : a[d] : void (f ? f.scrollTo(c ? m(f).scrollLeft() : e, c ? e : m(f).scrollTop()) : a[d] = e)
            }, a, d, arguments.length, null)
        }
    }), m.each(["top", "left"], function (a, b) {
        m.cssHooks[b] = Lb(k.pixelPosition, function (a, c) {
            return c ? (c = Jb(a, b), Hb.test(c) ? m(a).position()[b] + "px" : c) : void 0
        })
    }), m.each({Height: "height", Width: "width"}, function (a, b) {
        m.each({padding: "inner" + a, content: b, "": "outer" + a}, function (c, d) {
            m.fn[d] = function (d, e) {
                var f = arguments.length && (c || "boolean" != typeof d),
                    g = c || (d === !0 || e === !0 ? "margin" : "border");
                return V(this, function (b, c, d) {
                    var e;
                    return m.isWindow(b) ? b.document.documentElement["client" + a] : 9 === b.nodeType ? (e = b.documentElement, Math.max(b.body["scroll" + a], e["scroll" + a], b.body["offset" + a], e["offset" + a], e["client" + a])) : void 0 === d ? m.css(b, c, g) : m.style(b, c, d, g)
                }, b, f ? d : void 0, f, null)
            }
        })
    }), m.fn.size = function () {
        return this.length
    }, m.fn.andSelf = m.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function () {
        return m
    });
    var ed = a.jQuery, fd = a.$;
    return m.noConflict = function (b) {
        return a.$ === m && (a.$ = fd), b && a.jQuery === m && (a.jQuery = ed), m
    }, typeof b === K && (a.jQuery = a.$ = m), m
});


/*! Amaze UI v2.3.0 | by Amaze UI Team | (c) 2015 AllMobilize, Inc. | Licensed under MIT | 2015-04-08T06:04:29 UTC */
!function t(e, i, n) {
    function o(a, r) {
        if (!i[a]) {
            if (!e[a]) {
                var l = "function" == typeof require && require;
                if (!r && l) return l(a, !0);
                if (s) return s(a, !0);
                var c = new Error("Cannot find module '" + a + "'");
                throw c.code = "MODULE_NOT_FOUND", c
            }
            var u = i[a] = {exports: {}};
            e[a][0].call(u.exports, function (t) {
                var i = e[a][1][t];
                return o(i ? i : t)
            }, u, u.exports, t, e, i, n)
        }
        return i[a].exports
    }

    for (var s = "function" == typeof require && require, a = 0; a < n.length; a++) o(n[a]);
    return o
}({
    1: [function (t, e) {
        (function (i) {
            "use strict";

            function n() {
                var t = o('[data-am-widget="accordion"]'), e = {
                    item: ".am-accordion-item",
                    title: ".am-accordion-title",
                    body: ".am-accordion-bd",
                    disabled: ".am-disabled"
                };
                t.each(function (t, i) {
                    var n = s.utils.parseOptions(o(i).attr("data-am-accordion")), a = o(i).find(e.title);
                    a.on("click.accordion.amui", function () {
                        var t = o(this).next(e.body), s = o(this).parent(e.item), a = t.data("amui.collapse");
                        s.is(e.disabled) || (s.toggleClass("am-active"), a ? t.collapse("toggle") : t.collapse(), !n.multiple && o(i).children(".am-active").not(s).not(e.disabled).removeClass("am-active").find(e.body + ".am-in").collapse("close"))
                    })
                })
            }

            t("./core"), t("./ui.collapse");
            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = o.AMUI;
            o(function () {
                n()
            }), e.exports = o.AMUI.accordion = {VERSION: "2.1.0", init: n}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4, "./ui.collapse": 26}], 2: [function (t, e) {
        (function (i) {
            "use strict";
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core"), t("./util.fastclick"), t("./util.hammer"), t("./amazeui"), t("./amazeui.legacy"), t("./ui.add2home"), t("./ui.alert"), t("./ui.button"), t("./ui.collapse"), t("./ui.datepicker"), t("./ui.dimmer"), t("./ui.dropdown"), t("./ui.flexslider"), t("./ui.iscroll-lite"), t("./ui.modal"), t("./ui.offcanvas"), t("./ui.pinchzoom"), t("./ui.popover"), t("./ui.progress"), t("./ui.pureview"), t("./ui.scrollspy"), t("./ui.scrollspynav"), t("./ui.selected"), t("./ui.share"), t("./ui.smooth-scroll"), t("./ui.sticky"), t("./ui.tabs"), t("./ui.ucheck"), t("./ui.validator"), t("./util.cookie"), t("./util.fullscreen"), t("./util.geolocation"), t("./util.qrcode"), t("./util.store"), t("./accordion"), t("./divider"), t("./duoshuo"), t("./figure"), t("./footer"), t("./gallery"), t("./gotop"), t("./header"), t("./intro"), t("./list_news"), t("./map"), t("./mechat"), t("./menu"), t("./navbar"), t("./pagination"), t("./paragraph"), t("./slider"), t("./tabs"), t("./titlebar"), t("./wechatpay"), e.exports = n.AMUI
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {
        "./accordion": 1,
        "./amazeui": 2,
        "./amazeui.legacy": 3,
        "./core": 4,
        "./divider": 5,
        "./duoshuo": 6,
        "./figure": 7,
        "./footer": 8,
        "./gallery": 9,
        "./gotop": 10,
        "./header": 11,
        "./intro": 12,
        "./list_news": 13,
        "./map": 14,
        "./mechat": 15,
        "./menu": 16,
        "./navbar": 17,
        "./pagination": 18,
        "./paragraph": 19,
        "./slider": 20,
        "./tabs": 21,
        "./titlebar": 22,
        "./ui.add2home": 23,
        "./ui.alert": 24,
        "./ui.button": 25,
        "./ui.collapse": 26,
        "./ui.datepicker": 27,
        "./ui.dimmer": 28,
        "./ui.dropdown": 29,
        "./ui.flexslider": 30,
        "./ui.iscroll-lite": 31,
        "./ui.modal": 32,
        "./ui.offcanvas": 33,
        "./ui.pinchzoom": 34,
        "./ui.popover": 35,
        "./ui.progress": 36,
        "./ui.pureview": 37,
        "./ui.scrollspy": 38,
        "./ui.scrollspynav": 39,
        "./ui.selected": 40,
        "./ui.share": 41,
        "./ui.smooth-scroll": 42,
        "./ui.sticky": 43,
        "./ui.tabs": 44,
        "./ui.ucheck": 45,
        "./ui.validator": 46,
        "./util.cookie": 47,
        "./util.fastclick": 48,
        "./util.fullscreen": 49,
        "./util.geolocation": 50,
        "./util.hammer": 51,
        "./util.qrcode": 52,
        "./util.store": 53,
        "./wechatpay": 54
    }], 3: [function (t, e) {
        (function (i) {
            "use strict";
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core"), t("./ui.alert"), t("./ui.button"), t("./ui.collapse"), t("./ui.dimmer"), t("./ui.dropdown"), t("./ui.flexslider"), t("./ui.modal"), t("./ui.offcanvas"), t("./ui.popover"), t("./ui.progress"), t("./ui.scrollspynav"), t("./ui.sticky"), t("./util.cookie"), e.exports = n.AMUI
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {
        "./core": 4,
        "./ui.alert": 24,
        "./ui.button": 25,
        "./ui.collapse": 26,
        "./ui.dimmer": 28,
        "./ui.dropdown": 29,
        "./ui.flexslider": 30,
        "./ui.modal": 32,
        "./ui.offcanvas": 33,
        "./ui.popover": 35,
        "./ui.progress": 36,
        "./ui.scrollspynav": 39,
        "./ui.sticky": 43,
        "./util.cookie": 47
    }], 4: [function (t, e) {
        (function (t) {
            "use strict";
            var i = "undefined" != typeof window ? window.jQuery : "undefined" != typeof t ? t.jQuery : null;
            if ("undefined" == typeof i) throw new Error("Amaze UI 2.x requires jQuery :-(\n爱上一匹野马，可你的家里没有草原…");
            var n = i.AMUI || {}, o = i(window), s = window.document, a = i("html");
            n.VERSION = "2.3.0", n.support = {}, n.support.transition = function () {
                var t = function () {
                    var t = s.body || s.documentElement, e = {
                        WebkitTransition: "webkitTransitionEnd",
                        MozTransition: "transitionend",
                        OTransition: "oTransitionEnd otransitionend",
                        transition: "transitionend"
                    };
                    for (var i in e) if (void 0 !== t.style[i]) return e[i]
                }();
                return t && {end: t}
            }(), n.support.animation = function () {
                var t = function () {
                    var t = s.body || s.documentElement, e = {
                        WebkitAnimation: "webkitAnimationEnd",
                        MozAnimation: "animationend",
                        OAnimation: "oAnimationEnd oanimationend",
                        animation: "animationend"
                    };
                    for (var i in e) if (void 0 !== t.style[i]) return e[i]
                }();
                return t && {end: t}
            }(), n.support.touch = "ontouchstart" in window && navigator.userAgent.toLowerCase().match(/mobile|tablet/) || window.DocumentTouch && document instanceof window.DocumentTouch || window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 0 || window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 0 || !1, n.support.mutationobserver = window.MutationObserver || window.WebKitMutationObserver || null, n.support.formValidation = "function" == typeof document.createElement("form").checkValidity, n.utils = {}, n.utils.debounce = function (t, e, i) {
                var n;
                return function () {
                    var o = this, s = arguments, a = function () {
                        n = null, i || t.apply(o, s)
                    }, r = i && !n;
                    clearTimeout(n), n = setTimeout(a, e), r && t.apply(o, s)
                }
            }, n.utils.isInView = function (t, e) {
                var n = i(t), s = !(!n.width() && !n.height()) && "none" !== n.css("display");
                if (!s) return !1;
                var a = o.scrollLeft(), r = o.scrollTop(), l = n.offset(), c = l.left, u = l.top;
                return e = i.extend({
                    topOffset: 0,
                    leftOffset: 0
                }, e), u + n.height() >= r && u - e.topOffset <= r + o.height() && c + n.width() >= a && c - e.leftOffset <= a + o.width()
            }, n.utils.parseOptions = n.utils.options = function (t) {
                if (i.isPlainObject(t)) return t;
                var e = t ? t.indexOf("{") : -1, n = {};
                if (-1 != e) try {
                    n = new Function("", "var json = " + t.substr(e) + "; return JSON.parse(JSON.stringify(json));")()
                } catch (o) {
                }
                return n
            }, n.utils.generateGUID = function (t) {
                var e = t + "-" || "am-";
                do e += Math.random().toString(36).substring(2, 7); while (document.getElementById(e));
                return e
            }, i.fn.emulateTransitionEnd = function (t) {
                var e = !1, o = this;
                i(this).one(n.support.transition.end, function () {
                    e = !0
                });
                var s = function () {
                    e || i(o).trigger(n.support.transition.end), o.transitionEndTimmer = void 0
                };
                return this.transitionEndTimmer = setTimeout(s, t), this
            }, i.fn.redraw = function () {
                return i(this).each(function () {
                    this.offsetHeight
                }), this
            }, i.fn.transitionEnd = function (t) {
                function e(n) {
                    t.call(this, n), i && o.off(i, e)
                }

                var i = n.support.transition.end, o = this;
                return t && i && o.on(i, e), this
            }, i.fn.removeClassRegEx = function () {
                return this.each(function (t) {
                    var e = i(this).attr("class");
                    if (!e || !t) return !1;
                    var n = [];
                    e = e.split(" ");
                    for (var o = 0, s = e.length; s > o; o++) e[o].match(t) || n.push(e[o]);
                    i(this).attr("class", n.join(" "))
                })
            }, i.fn.alterClass = function (t, e) {
                var n = this;
                if (-1 === t.indexOf("*")) return n.removeClass(t), e ? n.addClass(e) : n;
                var o = new RegExp("\\s" + t.replace(/\*/g, "[A-Za-z0-9-_]+").split(" ").join("\\s|\\s") + "\\s", "g");
                return n.each(function (t, e) {
                    for (var n = " " + e.className + " "; o.test(n);) n = n.replace(o, " ");
                    e.className = i.trim(n)
                }), e ? n.addClass(e) : n
            }, n.utils.rAF = function () {
                return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || function (t) {
                    return window.setTimeout(t, 1e3 / 60)
                }
            }(), n.utils.cancelAF = function () {
                return window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || function (t) {
                    window.clearTimeout(t)
                }
            }(), n.utils.measureScrollbar = function () {
                if (document.body.clientWidth >= window.innerWidth) return 0;
                var t = i('<div style="width: 100px;height: 100px;overflow: scroll;position: absolute;top: -9999px;"></div>');
                i(document.body).append(t);
                var e = t[0].offsetWidth - t[0].clientWidth;
                return t.remove(), e
            }, n.utils.imageLoader = function (t, e) {
                function i() {
                    e(t[0])
                }

                function n() {
                    if (this.one("load", i), /MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
                        var t = this.attr("src"), e = t.match(/\?/) ? "&" : "?";
                        e += "random=" + (new Date).getTime(), this.attr("src", t + e)
                    }
                }

                return t.attr("src") ? void (t[0].complete || 4 === t[0].readyState ? i() : n.call(t)) : void i()
            }, n.template = function (t, e) {
                var i = n.template;
                return i.cache[t] || (i.cache[t] = function () {
                    var e = t, n = /^[\w\-]+$/.test(t) ? i.get(t) : (e = "template(string)", t), o = 1,
                        s = ("try { " + (i.variable ? "var " + i.variable + " = this.stash;" : "with (this.stash) { ") + "this.ret += '" + n.replace(/<%/g, "").replace(/%>/g, "").replace(/'(?![^\x11\x13]+?\x13)/g, "\\x27").replace(/^\s*|\s*$/g, "").replace(/\n/g, function () {
                            return "';\nthis.line = " + ++o + "; this.ret += '\\n"
                        }).replace(/\x11-(.+?)\x13/g, "' + ($1) + '").replace(/\x11=(.+?)\x13/g, "' + this.escapeHTML($1) + '").replace(/\x11(.+?)\x13/g, "'; $1; this.ret += '") + "'; " + (i.variable ? "" : "}") + "return this.ret;} catch (e) { throw 'TemplateError: ' + e + ' (on " + e + "' + ' line ' + this.line + ')'; } //@ sourceURL=" + e + "\n").replace(/this\.ret \+= '';/g, ""),
                        a = new Function(s), r = {"&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&#x22;", "'": "&#x27;"},
                        l = function (t) {
                            return ("" + t).replace(/[&<>\'\"]/g, function (t) {
                                return r[t]
                            })
                        };
                    return function (t) {
                        return a.call(i.context = {escapeHTML: l, line: 1, ret: "", stash: t})
                    }
                }()), e ? i.cache[t](e) : i.cache[t]
            }, n.template.cache = {}, n.template.get = function (t) {
                if (t) {
                    var e = document.getElementById(t);
                    return e && e.innerHTML || ""
                }
            }, n.DOMWatchers = [], n.DOMReady = !1, n.ready = function (t) {
                n.DOMWatchers.push(t), n.DOMReady && t(document)
            }, n.DOMObserve = function (t, e, o) {
                var s = n.support.mutationobserver;
                s && (e = i.isPlainObject(e) ? e : {
                    childList: !0,
                    subtree: !0
                }, o = "function" == typeof o && o || function () {
                }, i(t).each(function () {
                    var t = this, a = i(t);
                    if (!a.data("am.observer")) try {
                        var r = new s(n.utils.debounce(function (e, i) {
                            o.call(t, e, i), a.trigger("changed.dom.amui")
                        }, 50));
                        r.observe(t, e), a.data("am.observer", r)
                    } catch (l) {
                    }
                }))
            }, i.fn.DOMObserve = function (t, e) {
                return this.each(function () {
                    n.DOMObserve(this, t, e)
                })
            }, n.support.touch && (a.addClass("am-touch"), i(function () {
                var t = n.FastClick;
                t && (i("[contenteditable]").addClass("needsclick"), t.attach(document.body))
            })), i(document).on("changed.dom.amui", function (t) {
                var e = t.target;
                i.each(n.DOMWatchers, function (t, i) {
                    i(e)
                })
            }), i(function () {
                var t = i("body");
                n.DOMReady = !0, i.each(n.DOMWatchers, function (t, e) {
                    e(document)
                }), n.DOMObserve("[data-am-observe]"), a.removeClass("no-js").addClass("js"), n.support.animation && a.addClass("cssanimations"), window.navigator.standalone && a.addClass("am-standalone"), i(".am-topbar-fixed-top").length && t.addClass("am-with-topbar-fixed-top"), i(".am-topbar-fixed-bottom").length && t.addClass("am-with-topbar-fixed-bottom");
                var e = i(".am-layout");
                e.find('[class*="md-block-grid"]').alterClass("md-block-grid-*"), e.find('[class*="lg-block-grid"]').alterClass("lg-block-grid"), i("[data-am-widget]").each(function () {
                    var t = i(this);
                    0 === t.parents(".am-layout").length && t.addClass("am-no-layout")
                })
            }), i.AMUI = n, e.exports = n
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {}], 5: [function (t, e) {
        "use strict";
        e.exports = {VERSION: "2.0.1"}
    }, {}], 6: [function (t, e) {
        (function (i) {
            "use strict";

            function n() {
                var t = o(".ds-thread"), e = t.parent('[data-am-widget="duoshuo"]').attr("data-ds-short-name"),
                    i = ("https:" == document.location.protocol ? "https:" : "http:") + "//static.duoshuo.com/embed.js";
                if (t.length && e && (window.duoshuoQuery = {short_name: e}, !o('script[src="' + i + '"]').length)) {
                    var n = o("<script>", {async: !0, type: "text/javascript", src: i, charset: "GBK"});
                    o("body").append(n)
                }
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core"), o(window).on("load", n), e.exports = o.AMUI.duoshuo = {VERSION: "2.0.1", init: n}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 7: [function (t, e) {
        (function (i) {
            "use strict";

            function n() {
                o(".am-figure").each(function (t, e) {
                    var i, n = s.utils.parseOptions(o(e).attr("data-am-figure")), a = o(e);
                    if (n.pureview) if ("auto" === n.pureview) {
                        var r = o.isImgZoomAble(a.find("img")[0]);
                        r && a.pureview()
                    } else a.addClass("am-figure-zoomable").pureview();
                    i = a.data("amui.pureview"), i && a.on("click", ":not(img)", function () {
                        i.open(0)
                    })
                })
            }

            t("./core"), t("./ui.pureview");
            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = o.AMUI;
            o.isImgZoomAble = function (t) {
                var e = new Image;
                e.src = t.src;
                var i = o(t).width() < e.width;
                return i && o(t).closest(".am-figure").addClass("am-figure-zoomable"), i
            }, o(window).on("load", function () {
                n()
            }), e.exports = o.AMUI.figure = {VERSION: "2.0.3", init: n}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4, "./ui.pureview": 37}], 8: [function (t, e) {
        (function (i) {
            "use strict";

            function n() {
                o(".am-footer-ysp").on("click", function () {
                    o("#am-footer-modal").modal()
                });
                var t = s.utils.parseOptions(o(".am-footer").data("amFooter"));
                t.addToHS && a(), o('[data-rel="desktop"]').on("click", function (t) {
                    t.preventDefault(), window.AMPlatform ? window.AMPlatform.util.goDesktop() : (r.set("allmobilize", "desktop", "", "/"), window.location = window.location)
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = t("./core");
            t("./ui.modal");
            var a = t("./ui.add2home"), r = t("./util.cookie");
            o(function () {
                n()
            }), e.exports = o.AMUI.footer = {VERSION: "3.1.2", init: n}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4, "./ui.add2home": 23, "./ui.modal": 32, "./util.cookie": 47}], 9: [function (t, e) {
        (function (i) {
            "use strict";

            function n() {
                var t = o('[data-am-widget="gallery"]');
                t.each(function () {
                    var t = s.utils.parseOptions(o(this).attr("data-am-gallery"));
                    t.pureview && ("object" == typeof t.pureview ? o(this).pureview(t.pureview) : o(this).pureview())
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core"), t("./ui.pureview");
            var s = o.AMUI;
            o(function () {
                n()
            }), e.exports = o.AMUI.gallery = {VERSION: "3.0.0", init: n}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4, "./ui.pureview": 37}], 10: [function (t, e) {
        (function (i) {
            "use strict";

            function n() {
                function t() {
                    i[(n.scrollTop() > 50 ? "add" : "remove") + "Class"]("am-active")
                }

                var e = o('[data-am-widget="gotop"]'), i = e.filter(".am-gotop-fixed"), n = o(window);
                e.find("a").on("click", function (t) {
                    t.preventDefault(), n.smoothScroll()
                }), t(), n.on("scroll.gotop.amui", o.AMUI.utils.debounce(t, 100))
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core"), t("./ui.smooth-scroll"), o(function () {
                n()
            }), e.exports = o.AMUI.gotop = {VERSION: "4.0.2", init: n}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4, "./ui.smooth-scroll": 42}], 11: [function (t, e) {
        (function (i) {
            "use strict";

            function n() {
                o('[data-am-widget="header"]').each(function () {
                    return o(this).hasClass("am-header-fixed") ? (o("body").addClass("am-with-fixed-header"), !1) : void 0
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core"), o(function () {
                n()
            }), e.exports = o.AMUI.header = {VERSION: "2.0.0", init: n}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 12: [function (t, e) {
        (function (i) {
            "use strict";
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core"), e.exports = n.AMUI.intro = {VERSION: "4.0.2"}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 13: [function (t, e) {
        (function (i) {
            "use strict";
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core"), e.exports = n.AMUI.listNews = {
                VERSION: "4.0.0", init: function () {
                }
            }
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 14: [function (t, e) {
        (function (i) {
            function n(t) {
                var e = s("<script />", {id: "am-map-api-0"});
                s("body").append(e), e.on("load", function () {
                    console.log("load");
                    var e = s("<script/>", {id: "am-map-api-1"});
                    s("body").append(e), e.on("load", function () {
                        var e = document.createElement("script");
                        e.textContent = "(" + t.toString() + ")();", s("body")[0].appendChild(e)
                    }).attr("src", "http://api.map.baidu.com/getscript?type=quick&file=feature&ak=WVAXZ05oyNRXS5egLImmentg&t=20140109092002")
                }).attr("src", "http://api.map.baidu.com/getscript?type=quick&file=api&ak=WVAXZ05oyNRXS5egLImmentg&t=20140109092002")
            }

            function o() {
                var t = document.querySelector(".am-map"), e = 116.331398, i = 39.897445,
                    n = t.getAttribute("data-name"), o = t.getAttribute("data-address"),
                    s = t.getAttribute("data-longitude") || e, a = t.getAttribute("data-latitude") || i,
                    r = t.getAttribute("data-setZoom") || 17, l = t.getAttribute("data-icon"),
                    c = new BMap.Map("bd-map"), u = new BMap.Point(s, a);
                c.centerAndZoom(u, r), t.getAttribute("data-zoomControl") && c.addControl(new BMap.ZoomControl), t.getAttribute("data-scaleControl") && c.addControl(new BMap.ScaleControl);
                var d = new BMap.Marker(u);
                l && d.setIcon(new BMap.Icon(l, new BMap.Size(40, 40)));
                var h = {width: 200, title: n}, p = new BMap.InfoWindow("地址：" + o, h), f = new BMap.Geocoder;
                s == e && a == i ? f.getPoint(o, function (t) {
                    t && (c.centerAndZoom(t, r), d.setPosition(t), c.addOverlay(d), c.openInfoWindow(p, t))
                }, "") : f.getLocation(u, function () {
                    c.centerAndZoom(u, r), d.setPosition(u), c.addOverlay(d), o ? c.openInfoWindow(p, u) : c.openInfoWindow(new BMap.InfoWindow(o, h), u)
                })
            }

            var s = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core");
            var a = function () {
                s(".am-map").length && n(o)
            };
            s(document).on("ready", a), e.exports = s.AMUI.map = {VERSION: "2.0.2", init: a}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 15: [function (t, e) {
        (function (i) {
            "use strict";

            function n() {
                if (o("#mechat").length) {
                    var t = o('[data-am-widget="mechat"]'), e = t.data("am-mechat-unitid"),
                        i = o("<script>", {charset: "GBK", src: "http://mechatim.com/js/unit/button.js?id=" + e});
                    o("body").append(i)
                }
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core"), o(window).on("load", n), e.exports = o.AMUI.mechat = {VERSION: "2.0.1", init: n}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 16: [function (t, e) {
        (function (i) {
            "use strict";
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core"), t("./ui.offcanvas"), t("./ui.collapse");
            var o = t("./ui.iscroll-lite"), s = function () {
                var t = n('[data-am-widget="menu"]');
                t.find(".am-menu-nav .am-parent > a").on("click", function (t) {
                    t.preventDefault();
                    var e = n(this), i = e.parent(), o = e.next(".am-menu-sub");
                    i.toggleClass("am-open"), o.collapse("toggle"), i.siblings(".am-parent").removeClass("am-open").children(".am-menu-sub.am-in").collapse("close")
                }), t.filter("[data-am-menu-collapse]").find("> .am-menu-toggle").on("click", function (t) {
                    t.preventDefault();
                    var e = n(this), i = e.next(".am-menu-nav");
                    e.toggleClass("am-active"), i.collapse("toggle")
                }), t.filter("[data-am-menu-offcanvas]").find("> .am-menu-toggle").on("click", function (t) {
                    t.preventDefault();
                    var e = n(this), i = e.next(".am-offcanvas");
                    e.toggleClass("am-active"), i.offCanvas("open")
                });
                var e = '.am-offcanvas[data-dismiss-on="click"]', i = n(e);
                i.find("a").not(".am-parent>a").on("click", function () {
                    n(this).parents(e).offCanvas("close")
                }), t.filter(".am-menu-one").each(function (t) {
                    var e, i = n(this), s = n('<div class="am-menu-nav-sub-wrap"></div>'), a = 0,
                        r = i.find(".am-menu-nav"), l = r.children("li");
                    l.filter(".am-parent").each(function (t) {
                        n(this).attr("data-rel", "#am-menu-sub-" + t), n(this).find(".am-menu-sub").attr("id", "am-menu-sub-" + t).appendTo(s)
                    }), i.append(s), r.wrap('<div class="am-menu-nav-wrap" id="am-menu-' + t + '">'), l.each(function () {
                        a += parseFloat(n(this).css("width"))
                    }), r.width(a);
                    var c = new o("#am-menu-" + t, {
                        eventPassthrough: !0,
                        scrollX: !0,
                        scrollY: !1,
                        preventDefault: !1
                    });
                    l.on("click", function () {
                        var t = n(this);
                        t.addClass("am-active").siblings().removeClass("am-active"), s.find(".am-menu-sub.am-in").collapse("close"), t.is(".am-parent") ? !t.hasClass(".am-open") && s.find(t.attr("data-rel")).collapse("open") : t.siblings().removeClass("am-open"), void 0 === e && (e = n(this).index() ? 0 : 1);
                        var o, a = n(this).index() > e, l = n(this)[a ? "next" : "prev"](),
                            u = l.offset() || n(this).offset(), d = i.offset(), h = parseInt(i.css("padding-left"));
                        (a ? u.left + u.width > d.left + d.width : u.left < d.left) && (o = r.offset(), c.scrollTo(a ? d.width - u.left + o.left - u.width - h : o.left - u.left, 0, 400)), e = n(this).index()
                    }), i.on("touchmove", function (t) {
                        t.preventDefault()
                    })
                })
            };
            n(function () {
                s()
            }), e.exports = n.AMUI.menu = {VERSION: "4.0.3", init: s}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4, "./ui.collapse": 26, "./ui.iscroll-lite": 31, "./ui.offcanvas": 33}], 17: [function (t, e) {
        (function (i) {
            "use strict";

            function n() {
                function t() {
                    u.append(b), u.find("li").not(".am-navbar-more").slice(i() - 1).appendTo(y), n.append(y)
                }

                function e() {
                    return i() >= h ? (b.hide(), void y.find("li").insertBefore(b)) : (!n.find(".am-navbar-actions").length && t(), b.show(), void (u.find("li").length < i() ? y.find("li").slice(0, i() - u.find("li").length).insertBefore(b) : u.find("li").length > i() && (y.find("li").length ? u.find("li").not(b).slice(i() - 1).insertBefore(y.find("li").first()) : u.find("li").not(b).slice(i() - 1).appendTo(y))))
                }

                function i() {
                    return Math.floor((l.width() - m) / f)
                }

                var n = o('[data-am-widget="navbar"]');
                if (n.length) {
                    var l = o(window), c = o("body"), u = n.find(".am-navbar-nav"), d = n.find("li"), h = d.length,
                        p = u.attr("class") && parseInt(u.attr("class").match(/am-avg-sm-(\d+)/)[1]) || 3, f = 60,
                        m = 16, v = d.filter("[data-am-navbar-share]"), g = d.filter("[data-am-navbar-qrcode]"),
                        w = "am-active",
                        y = o('<ul class="am-navbar-actions"></ul>', {id: r.utils.generateGUID("am-navbar-actions")}),
                        b = o('<li class="am-navbar-labels am-navbar-more"><a href="javascript: void(0);"><span class="am-icon-angle-up"></span><span class="am-navbar-label">更多</span></a></li>');
                    if ("fixed" == n.css("position") && c.addClass("am-with-fixed-navbar"), g.length) {
                        var T = "am-navbar-qrcode";
                        if (C = o("#" + T), !C.length) {
                            var x = g.attr("data-am-navbar-qrcode"),
                                C = o('<div class="am-modal am-modal-no-btn" id=""><div class="am-modal-dialog"><div class="am-modal-bd"></div></div></div>', {id: T}),
                                E = C.find(".am-modal-bd");
                            if (x) E.html('<img src="' + x + '"/>'); else {
                                var k = new a({
                                    render: "canvas",
                                    correctLevel: 0,
                                    text: window.location.href,
                                    width: 200,
                                    height: 200,
                                    background: "#fff",
                                    foreground: "#000"
                                });
                                E.html(k)
                            }
                            c.append(C)
                        }
                        g.on("click", function (t) {
                            t.preventDefault(), C.modal()
                        })
                    }
                    h > p && h > i() && t(), n.on("click.navbar.amui", ".am-navbar-more", function (t) {
                        t.preventDefault(), b[y.hasClass(w) ? "removeClass" : "addClass"](w), y.toggleClass(w)
                    }), v.length && v.on("click.navbar.amui", function (t) {
                        t.preventDefault(), s.toggle()
                    }), l.on("resize.navbar.amui orientationchange.navbar.amui", r.utils.debounce(e, 150))
                }
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core"), t("./ui.modal");
            var s = t("./ui.share"), a = t("./util.qrcode"), r = o.AMUI;
            o(function () {
                n()
            }), e.exports = o.AMUI.navbar = {VERSION: "2.0.2", init: n}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4, "./ui.modal": 32, "./ui.share": 41, "./util.qrcode": 52}], 18: [function (t, e) {
        (function (i) {
            "use strict";
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core"), e.exports = n.AMUI.pagination = {VERSION: "3.0.1"}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 19: [function (t, e) {
        (function (i) {
            "use strict";

            function n() {
                var t = o('[data-am-widget="paragraph"]');
                t.each(function (t) {
                    var e = o(this), i = a.utils.parseOptions(e.attr("data-am-paragraph")), n = t;
                    i.pureview && e.pureview(), i.tableScrollable && e.find("table").each(function (t) {
                        o(this).width() > o(window).width() && o(this).scrollTable(n + "-" + t)
                    })
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core"), t("./ui.pureview");
            var s = t("./ui.iscroll-lite"), a = o.AMUI;
            o.fn.scrollTable = function (t) {
                var e, i = o(this);
                i.wrap('<div class="am-paragraph-table-container" id="am-paragraph-table-' + t + '"><div class="am-paragraph-table-scroller"></div></div>'), e = i.parent(), e.width(i.width()), e.height(i.height()), new s("#am-paragraph-table-" + t, {
                    eventPassthrough: !0,
                    scrollX: !0,
                    scrollY: !1,
                    preventDefault: !1
                })
            }, o(window).on("load", function () {
                n()
            }), e.exports = o.AMUI.paragraph = {VERSION: "2.0.1", init: n}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4, "./ui.iscroll-lite": 31, "./ui.pureview": 37}], 20: [function (t, e) {
        (function (i) {
            "use strict";

            function n() {
                var t = o('[data-am-widget="slider"]');
                t.not(".am-slider-manual").each(function (t, e) {
                    var i = s.utils.parseOptions(o(e).attr("data-am-slider"));
                    o(e).flexslider(i)
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core"), t("./ui.flexslider");
            var s = o.AMUI;
            o(document).on("ready", n), e.exports = o.AMUI.slider = {VERSION: "3.0.1", init: n}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4, "./ui.flexslider": 30}], 21: [function (t, e) {
        (function (i) {
            "use strict";

            function n() {
                o('[data-am-widget="tabs"]').each(function () {
                    var t = o(this).data("amTabsNoswipe") ? {noSwipe: 1} : {};
                    o(this).tabs(t)
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core"), t("./ui.tabs"), o(function () {
                n()
            }), e.exports = o.AMUI.tab = {VERSION: "4.0.1", init: n}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4, "./ui.tabs": 44}], 22: [function (t, e) {
        (function (i) {
            "use strict";
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core"), e.exports = n.AMUI.titlebar = {VERSION: "4.0.1"}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 23: [function (t, e) {
        (function (i) {
            "use strict";

            function n() {
                window.removeEventListener("load", n, !1), l = !0
            }

            function o(t) {
                return c = c || new o.Class(t)
            }

            function s(t, e) {
                for (var i in e) t[i] = e[i];
                return t
            }

            function a() {
                "#ath" == document.location.hash && history.replaceState("", window.document.title, document.location.href.split("#")[0]), u.test(document.location.href) && history.replaceState("", window.document.title, document.location.href.replace(u, "$1")), d.test(document.location.search) && history.replaceState("", window.document.title, document.location.href.replace(d, "$2"))
            }

            var r = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core");
            var l = !1;
            "complete" === document.readyState ? l = !0 : window.addEventListener("load", n, !1);
            var c, u = /\/ath(\/)?$/, d = /([\?&]ath=[^&]*$|&ath=[^&]*(&))/;
            o.intl = {
                en_us: {
                    message: "To add this web app to the home screen: tap %icon and then <strong>%action</strong>.",
                    action: {ios: "Add to Home Screen", android: "Add to homescreen", windows: "pin to start"}
                },
                zh_cn: {
                    message: "如要把应用程式加至主屏幕,请点击%icon, 然后<strong>%action</strong>",
                    action: {ios: "加至主屏幕", android: "加至主屏幕", windows: "按住启动"}
                },
                zh_tw: {
                    message: "如要把應用程式加至主屏幕, 請點擊%icon, 然後<strong>%action</strong>.",
                    action: {ios: "加至主屏幕", android: "加至主屏幕", windows: "按住啟動"}
                }
            };
            for (var h in o.intl) o.intl[h.substr(0, 2)] = o.intl[h];
            o.defaults = {
                appID: "org.cubiq.addtohome",
                fontSize: 15,
                debug: !1,
                modal: !1,
                mandatory: !1,
                autostart: !0,
                skipFirstVisit: !1,
                startDelay: 1,
                lifespan: 15,
                displayPace: 1440,
                maxDisplayCount: 0,
                icon: !0,
                message: "",
                validLocation: [],
                onInit: null,
                onShow: null,
                onRemove: null,
                onAdd: null,
                onPrivate: null,
                detectHomescreen: !1
            };
            var p = window.navigator.userAgent, f = window.navigator;
            s(o, {
                hasToken: "#ath" == document.location.hash || u.test(document.location.href) || d.test(document.location.search),
                isRetina: window.devicePixelRatio && window.devicePixelRatio > 1,
                isIDevice: /iphone|ipod|ipad/i.test(p),
                isMobileChrome: p.indexOf("Android") > -1 && /Chrome\/[.0-9]*/.test(p),
                isMobileIE: p.indexOf("Windows Phone") > -1,
                language: f.language && f.language.toLowerCase().replace("-", "_") || ""
            }), o.language = o.language && o.language in o.intl ? o.language : "en_us", o.isMobileSafari = o.isIDevice && p.indexOf("Safari") > -1 && p.indexOf("CriOS") < 0, o.OS = o.isIDevice ? "ios" : o.isMobileChrome ? "android" : o.isMobileIE ? "windows" : "unsupported", o.OSVersion = p.match(/(OS|Android) (\d+[_\.]\d+)/), o.OSVersion = o.OSVersion && o.OSVersion[2] ? +o.OSVersion[2].replace("_", ".") : 0, o.isStandalone = window.navigator.standalone || o.isMobileChrome && screen.height - document.documentElement.clientHeight < 40, o.isTablet = o.isMobileSafari && p.indexOf("iPad") > -1 || o.isMobileChrome && p.indexOf("Mobile") < 0, o.isCompatible = o.isMobileSafari && o.OSVersion >= 6 || o.isMobileChrome;
            var m = {lastDisplayTime: 0, returningVisitor: !1, displayCount: 0, optedout: !1, added: !1};
            o.removeSession = function (t) {
                try {
                    localStorage.removeItem(t || o.defaults.appID)
                } catch (e) {
                }
            }, o.Class = function (t) {
                if (this.options = s({}, o.defaults), s(this.options, t), this.options.mandatory = this.options.mandatory && ("standalone" in window.navigator || this.options.debug), this.options.modal = this.options.modal || this.options.mandatory, this.options.mandatory && (this.options.startDelay = -.5), this.options.detectHomescreen = this.options.detectHomescreen === !0 ? "hash" : this.options.detectHomescreen, this.options.debug && (o.isCompatible = !0, o.OS = "string" == typeof this.options.debug ? this.options.debug : "unsupported" == o.OS ? "android" : o.OS, o.OSVersion = "ios" == o.OS ? "8" : "4"), this.container = document.documentElement, this.session = localStorage.getItem(this.options.appID), this.session = this.session ? JSON.parse(this.session) : void 0, !o.hasToken || o.isCompatible && this.session || (o.hasToken = !1, a()), o.isCompatible) {
                    this.session = this.session || m;
                    try {
                        localStorage.setItem(this.options.appID, JSON.stringify(this.session)), o.hasLocalStorage = !0
                    } catch (e) {
                        o.hasLocalStorage = !1, this.options.onPrivate && this.options.onPrivate.call(this)
                    }
                    for (var i = !this.options.validLocation.length, n = this.options.validLocation.length; n--;) if (this.options.validLocation[n].test(document.location.href)) {
                        i = !0;
                        break
                    }
                    if (localStorage.getItem("addToHome") && this.optOut(), !this.session.optedout && !this.session.added && i) {
                        if (o.isStandalone) return void (this.session.added || (this.session.added = !0, this.updateSession(), this.options.onAdd && o.hasLocalStorage && this.options.onAdd.call(this)));
                        if (this.options.detectHomescreen) {
                            if (o.hasToken) return a(), void (this.session.added || (this.session.added = !0, this.updateSession(), this.options.onAdd && o.hasLocalStorage && this.options.onAdd.call(this)));
                            "hash" == this.options.detectHomescreen ? history.replaceState("", window.document.title, document.location.href + "#ath") : "smartURL" == this.options.detectHomescreen ? history.replaceState("", window.document.title, document.location.href.replace(/(\/)?$/, "/ath$1")) : history.replaceState("", window.document.title, document.location.href + (document.location.search ? "&" : "?") + "ath=")
                        }
                        (this.session.returningVisitor || (this.session.returningVisitor = !0, this.updateSession(), !this.options.skipFirstVisit)) && o.hasLocalStorage && (this.ready = !0, this.options.onInit && this.options.onInit.call(this), this.options.autostart && this.show())
                    }
                }
            }, o.Class.prototype = {
                events: {
                    load: "_delayedShow",
                    error: "_delayedShow",
                    orientationchange: "resize",
                    resize: "resize",
                    scroll: "resize",
                    click: "remove",
                    touchmove: "_preventDefault",
                    transitionend: "_removeElements",
                    webkitTransitionEnd: "_removeElements",
                    MSTransitionEnd: "_removeElements"
                }, handleEvent: function (t) {
                    var e = this.events[t.type];
                    e && this[e](t)
                }, show: function (t) {
                    if (this.options.autostart && !l) return void setTimeout(this.show.bind(this), 50);
                    if (!this.shown) {
                        var e = Date.now(), i = this.session.lastDisplayTime;
                        if (t !== !0) {
                            if (!this.ready) return;
                            if (e - i < 6e4 * this.options.displayPace) return;
                            if (this.options.maxDisplayCount && this.session.displayCount >= this.options.maxDisplayCount) return
                        }
                        this.shown = !0, this.session.lastDisplayTime = e, this.session.displayCount++, this.updateSession(), this.applicationIcon || (this.applicationIcon = document.querySelector("ios" == o.OS ? 'head link[rel^=apple-touch-icon][sizes="152x152"],head link[rel^=apple-touch-icon][sizes="144x144"],head link[rel^=apple-touch-icon][sizes="120x120"],head link[rel^=apple-touch-icon][sizes="114x114"],head link[rel^=apple-touch-icon]' : 'head link[rel^="shortcut icon"][sizes="196x196"],head link[rel^=apple-touch-icon]'));
                        var n = "";
                        n = this.options.message in o.intl ? o.intl[this.options.message].message.replace("%action", o.intl[this.options.message].action[o.OS]) : "" !== this.options.message ? this.options.message : o.intl[o.language].message.replace("%action", o.intl[o.language].action[o.OS]), n = "<p>" + n.replace("%icon", '<span class="ath-action-icon">icon</span>') + "</p>", this.viewport = document.createElement("div"), this.viewport.className = "ath-viewport", this.options.modal && (this.viewport.className += " ath-modal"), this.options.mandatory && (this.viewport.className += " ath-mandatory"), this.viewport.style.position = "absolute", this.element = document.createElement("div"), this.element.className = "ath-container ath-" + o.OS + " ath-" + o.OS + (o.OSVersion + "").substr(0, 1) + " ath-" + (o.isTablet ? "tablet" : "phone"), this.element.style.cssText = "-webkit-transition-property:-webkit-transform,opacity;-webkit-transition-duration:0;-webkit-transform:translate3d(0,0,0);transition-property:transform,opacity;transition-duration:0;transform:translate3d(0,0,0);-webkit-transition-timing-function:ease-out", this.element.style.webkitTransform = "translate3d(0,-" + window.innerHeight + "px,0)", this.element.style.webkitTransitionDuration = "0s", this.options.icon && this.applicationIcon && (this.element.className += " ath-icon", this.img = document.createElement("img"), this.img.className = "ath-application-icon", this.img.addEventListener("load", this, !1), this.img.addEventListener("error", this, !1), this.img.src = this.applicationIcon.href, this.element.appendChild(this.img)), this.element.innerHTML += n, this.viewport.style.left = "-99999em", this.viewport.appendChild(this.element), this.container.appendChild(this.viewport), this.img || this._delayedShow()
                    }
                }, _delayedShow: function () {
                    setTimeout(this._show.bind(this), 1e3 * this.options.startDelay + 500)
                }, _show: function () {
                    var t = this;
                    this.updateViewport(), window.addEventListener("resize", this, !1), window.addEventListener("scroll", this, !1), window.addEventListener("orientationchange", this, !1), this.options.modal && document.addEventListener("touchmove", this, !0), this.options.mandatory || setTimeout(function () {
                        t.element.addEventListener("click", t, !0)
                    }, 1e3), setTimeout(function () {
                        t.element.style.webkitTransform = "translate3d(0,0,0)", t.element.style.webkitTransitionDuration = "1.2s"
                    }, 0), this.options.lifespan && (this.removeTimer = setTimeout(this.remove.bind(this), 1e3 * this.options.lifespan)), this.options.onShow && this.options.onShow.call(this)
                }, remove: function () {
                    clearTimeout(this.removeTimer), this.img && (this.img.removeEventListener("load", this, !1), this.img.removeEventListener("error", this, !1)), window.removeEventListener("resize", this, !1), window.removeEventListener("scroll", this, !1), window.removeEventListener("orientationchange", this, !1), document.removeEventListener("touchmove", this, !0), this.element.removeEventListener("click", this, !0), this.element.addEventListener("transitionend", this, !1), this.element.addEventListener("webkitTransitionEnd", this, !1), this.element.addEventListener("MSTransitionEnd", this, !1), this.element.style.webkitTransitionDuration = "0.3s", this.element.style.opacity = "0"
                }, _removeElements: function () {
                    this.element.removeEventListener("transitionend", this, !1), this.element.removeEventListener("webkitTransitionEnd", this, !1), this.element.removeEventListener("MSTransitionEnd", this, !1), this.container.removeChild(this.viewport), this.shown = !1, this.options.onRemove && this.options.onRemove.call(this)
                }, updateViewport: function () {
                    if (this.shown) {
                        this.viewport.style.width = window.innerWidth + "px", this.viewport.style.height = window.innerHeight + "px", this.viewport.style.left = window.scrollX + "px", this.viewport.style.top = window.scrollY + "px";
                        var t = document.documentElement.clientWidth;
                        this.orientation = t > document.documentElement.clientHeight ? "landscape" : "portrait";
                        var e = "ios" == o.OS ? "portrait" == this.orientation ? screen.width : screen.height : screen.width;
                        this.scale = screen.width > t ? 1 : e / window.innerWidth, this.element.style.fontSize = this.options.fontSize / this.scale + "px"
                    }
                }, resize: function () {
                    clearTimeout(this.resizeTimer), this.resizeTimer = setTimeout(this.updateViewport.bind(this), 100)
                }, updateSession: function () {
                    o.hasLocalStorage !== !1 && localStorage.setItem(this.options.appID, JSON.stringify(this.session))
                }, clearSession: function () {
                    this.session = m, this.updateSession()
                }, optOut: function () {
                    this.session.optedout = !0, this.updateSession()
                }, optIn: function () {
                    this.session.optedout = !1, this.updateSession()
                }, clearDisplayCount: function () {
                    this.session.displayCount = 0, this.updateSession()
                }, _preventDefault: function (t) {
                    t.preventDefault(), t.stopPropagation()
                }
            }, r.AMUI.addToHomescreen = o, e.exports = o
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 24: [function (t, e) {
        (function (i) {
            "use strict";
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                o = t("./core"), s = function (t, e) {
                    var i = this;
                    this.options = n.extend({}, s.DEFAULTS, e), this.$element = n(t), this.$element.addClass("am-fade am-in").on("click.alert.amui", ".am-close", function () {
                        i.close.call(this)
                    })
                };
            s.DEFAULTS = {removeElement: !0}, s.prototype.close = function () {
                function t() {
                    i.trigger("closed.alert.amui").remove()
                }

                var e = n(this), i = e.hasClass("am-alert") ? e : e.parent(".am-alert");
                i.trigger("close.alert.amui"), i.removeClass("am-in"), o.support.transition && i.hasClass("am-fade") ? i.one(o.support.transition.end, t).emulateTransitionEnd(200) : t()
            }, n.fn.alert = function (t) {
                return this.each(function () {
                    var e = n(this), i = e.data("amui.alert"), o = "object" == typeof t && t;
                    i || e.data("amui.alert", i = new s(this, o || {})), "string" == typeof t && i[t].call(e)
                })
            }, n(document).on("click.alert.amui.data-api", "[data-am-alert]", function (t) {
                var e = n(t.target);
                n(this).addClass("am-fade am-in"), e.is(".am-close") && n(this).alert("close")
            }), n.AMUI.alert = s, e.exports = s
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 25: [function (t, e) {
        (function (i) {
            "use strict";

            function n(t) {
                return this.each(function () {
                    var e = o(this), i = e.data("amui.button"), n = "object" == typeof t && t || {};
                    i || e.data("amui.button", i = new a(this, n)), "toggle" == t ? i.toggle() : "string" == typeof t && i.setState(t)
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = t("./core"), a = function (t, e) {
                    this.$element = o(t), this.options = o.extend({}, a.DEFAULTS, e), this.isLoading = !1, this.hasSpinner = !1
                };
            a.DEFAULTS = {
                loadingText: "loading...",
                className: {loading: "am-btn-loading", disabled: "am-disabled"},
                spinner: void 0
            }, a.prototype.setState = function (t) {
                var e = "disabled", i = this.$element, n = this.options, a = i.is("input") ? "val" : "html",
                    r = n.className.disabled + " " + n.className.loading;
                t += "Text", n.resetText || (n.resetText = i[a]()), s.support.animation && n.spinner && "html" === a && !this.hasSpinner && (n.loadingText = '<span class="am-icon-' + n.spinner + ' am-icon-spin"></span>' + n.loadingText, this.hasSpinner = !0), i[a](n[t]), setTimeout(o.proxy(function () {
                    "loadingText" == t ? (i.addClass(r).attr(e, e), this.isLoading = !0) : this.isLoading && (i.removeClass(r).removeAttr(e), this.isLoading = !1)
                }, this), 0)
            }, a.prototype.toggle = function () {
                var t = !0, e = this.$element, i = this.$element.parent(".am-btn-group");
                if (i.length) {
                    var n = this.$element.find("input");
                    "radio" == n.prop("type") && (n.prop("checked") && e.hasClass("am-active") ? t = !1 : i.find(".am-active").removeClass("am-active")), t && n.prop("checked", !e.hasClass("am-active")).trigger("change")
                }
                t && (e.toggleClass("am-active"), e.hasClass("am-active") || e.blur())
            }, o.fn.button = n, o(document).on("click.button.amui.data-api", "[data-am-button]", function (t) {
                var e = o(t.target);
                e.hasClass("am-btn") || (e = e.closest(".am-btn")), n.call(e, "toggle"), t.preventDefault()
            }), s.ready(function (t) {
                o("[data-am-loading]", t).each(function () {
                    o(this).button(s.utils.parseOptions(o(this).data("amLoading")))
                })
            }), o.AMUI.button = a, e.exports = a
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 26: [function (t, e) {
        (function (i) {
            "use strict";

            function n(t) {
                return this.each(function () {
                    var e = o(this), i = e.data("amui.collapse"),
                        n = o.extend({}, a.DEFAULTS, s.utils.options(e.attr("data-am-collapse")), "object" == typeof t && t);
                    !i && n.toggle && "open" == t && (t = !t), i || e.data("amui.collapse", i = new a(this, n)), "string" == typeof t && i[t]()
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = t("./core"), a = function (t, e) {
                    this.$element = o(t), this.options = o.extend({}, a.DEFAULTS, e), this.transitioning = null, this.options.parent && (this.$parent = o(this.options.parent)), this.options.toggle && this.toggle()
                };
            a.DEFAULTS = {toggle: !0}, a.prototype.open = function () {
                if (!this.transitioning && !this.$element.hasClass("am-in")) {
                    var t = o.Event("open.collapse.amui");
                    if (this.$element.trigger(t), !t.isDefaultPrevented()) {
                        var e = this.$parent && this.$parent.find("> .am-panel > .am-in");
                        if (e && e.length) {
                            var i = e.data("amui.collapse");
                            if (i && i.transitioning) return;
                            n.call(e, "close"), i || e.data("amui.collapse", null)
                        }
                        this.$element.removeClass("am-collapse").addClass("am-collapsing").height(0), this.transitioning = 1;
                        var a = function () {
                            this.$element.removeClass("am-collapsing").addClass("am-collapse am-in").height(""), this.transitioning = 0, this.$element.trigger("opened.collapse.amui")
                        };
                        if (!s.support.transition) return a.call(this);
                        var r = this.$element[0].scrollHeight;
                        this.$element.one(s.support.transition.end, o.proxy(a, this)).emulateTransitionEnd(300).css({height: r})
                    }
                }
            }, a.prototype.close = function () {
                if (!this.transitioning && this.$element.hasClass("am-in")) {
                    var t = o.Event("close.collapse.amui");
                    if (this.$element.trigger(t), !t.isDefaultPrevented()) {
                        this.$element.height(this.$element.height()).redraw(), this.$element.addClass("am-collapsing").removeClass("am-collapse am-in"), this.transitioning = 1;
                        var e = function () {
                            this.transitioning = 0, this.$element.trigger("closed.collapse.amui").removeClass("am-collapsing").addClass("am-collapse")
                        };
                        return s.support.transition ? void this.$element.height(0).one(s.support.transition.end, o.proxy(e, this)).emulateTransitionEnd(300) : e.call(this)
                    }
                }
            }, a.prototype.toggle = function () {
                this[this.$element.hasClass("am-in") ? "close" : "open"]()
            }, o.fn.collapse = n, o(document).on("click.collapse.amui.data-api", "[data-am-collapse]", function (t) {
                var e, i = o(this), a = s.utils.options(i.attr("data-am-collapse")),
                    r = a.target || t.preventDefault() || (e = i.attr("href")) && e.replace(/.*(?=#[^\s]+$)/, ""),
                    l = o(r), c = l.data("amui.collapse"), u = c ? "toggle" : a, d = a.parent, h = d && o(d);
                c && c.transitioning || (h && h.find("[data-am-collapse]").not(i).addClass("am-collapsed"), i[l.hasClass("am-in") ? "addClass" : "removeClass"]("am-collapsed")), n.call(l, u)
            }), o.AMUI.collapse = a, e.exports = a
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 27: [function (t, e) {
        (function (i) {
            "use strict";
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                o = t("./core"), s = n(document), a = function (t, e) {
                    if (this.$element = n(t), this.options = n.extend({}, a.DEFAULTS, e), this.format = r.parseFormat(this.options.format), this.$element.data("date", this.options.date), this.language = this.getLocale(this.options.locale), this.theme = this.options.theme, this.$picker = n(r.template).appendTo("body").on({click: n.proxy(this.click, this)}), this.isInput = this.$element.is("input"), this.component = this.$element.is(".am-datepicker-date") ? this.$element.find(".am-datepicker-add-on") : !1, this.isInput ? this.$element.on({
                        "click.datepicker.amui": n.proxy(this.open, this),
                        "keyup.datepicker.amui": n.proxy(this.update, this)
                    }) : this.component ? this.component.on("click.datepicker.amui", n.proxy(this.open, this)) : this.$element.on("click.datepicker.amui", n.proxy(this.open, this)), this.minViewMode = this.options.minViewMode, "string" == typeof this.minViewMode) switch (this.minViewMode) {
                        case"months":
                            this.minViewMode = 1;
                            break;
                        case"years":
                            this.minViewMode = 2;
                            break;
                        default:
                            this.minViewMode = 0
                    }
                    if (this.viewMode = this.options.viewMode, "string" == typeof this.viewMode) switch (this.viewMode) {
                        case"months":
                            this.viewMode = 1;
                            break;
                        case"years":
                            this.viewMode = 2;
                            break;
                        default:
                            this.viewMode = 0
                    }
                    this.startViewMode = this.viewMode, this.weekStart = (this.options.weekStart || a.locales[this.language].weekStart || 0) % 7, this.weekEnd = (this.weekStart + 6) % 7, this.onRender = this.options.onRender, this.setTheme(), this.fillDow(), this.fillMonths(), this.update(), this.showMode()
                };
            a.DEFAULTS = {
                locale: "zh_CN",
                format: "yyyy-mm-dd",
                weekStart: void 0,
                viewMode: 0,
                minViewMode: 0,
                date: "",
                theme: "",
                autoClose: 1,
                onRender: function () {
                    return ""
                }
            }, a.prototype.open = function (t) {
                this.$picker.show(), this.height = this.component ? this.component.outerHeight() : this.$element.outerHeight(), this.place(), n(window).on("resize.datepicker.amui", n.proxy(this.place, this)), t && (t.stopPropagation(), t.preventDefault());
                var e = this;
                s.on("mousedown.datapicker.amui touchstart.datepicker.amui", function (t) {
                    0 === n(t.target).closest(".am-datepicker").length && e.close()
                }), this.$element.trigger({type: "open.datepicker.amui", date: this.date})
            }, a.prototype.close = function () {
                this.$picker.hide(), n(window).off("resize.datepicker.amui", this.place), this.viewMode = this.startViewMode, this.showMode(), this.isInput || n(document).off("mousedown.datapicker.amui touchstart.datepicker.amui", this.close), this.$element.trigger({
                    type: "close.datepicker.amui",
                    date: this.date
                })
            }, a.prototype.set = function () {
                var t = r.formatDate(this.date, this.format);
                this.isInput ? this.$element.prop("value", t) : (this.component && this.$element.find("input").prop("value", t), this.$element.data("date", t))
            }, a.prototype.setValue = function (t) {
                this.date = "string" == typeof t ? r.parseDate(t, this.format) : new Date(t), this.set(), this.viewDate = new Date(this.date.getFullYear(), this.date.getMonth(), 1, 0, 0, 0, 0), this.fill()
            }, a.prototype.place = function () {
                var t = this.component ? this.component.offset() : this.$element.offset(),
                    e = this.component ? this.component.width() : this.$element.width(), i = t.top + this.height,
                    n = t.left, o = s.width() - t.left - e, a = this.isOutView();
                if (this.$picker.removeClass("am-datepicker-right"), this.$picker.removeClass("am-datepicker-up"), s.width() > 640) {
                    if (a.outRight) return this.$picker.addClass("am-datepicker-right"), void this.$picker.css({
                        top: i,
                        left: "auto",
                        right: o
                    });
                    a.outBottom && (this.$picker.addClass("am-datepicker-up"), i = t.top - this.$picker.outerHeight(!0))
                } else n = 0;
                this.$picker.css({top: i, left: n})
            }, a.prototype.update = function (t) {
                this.date = r.parseDate("string" == typeof t ? t : this.isInput ? this.$element.prop("value") : this.$element.data("date"), this.format), this.viewDate = new Date(this.date.getFullYear(), this.date.getMonth(), 1, 0, 0, 0, 0), this.fill()
            }, a.prototype.fillDow = function () {
                for (var t = this.weekStart, e = "<tr>"; t < this.weekStart + 7;) e += '<th class="am-datepicker-dow">' + a.locales[this.language].daysMin[t++ % 7] + "</th>";
                e += "</tr>", this.$picker.find(".am-datepicker-days thead").append(e)
            }, a.prototype.fillMonths = function () {
                for (var t = "", e = 0; 12 > e;) t += '<span class="am-datepicker-month">' + a.locales[this.language].monthsShort[e++] + "</span>";
                this.$picker.find(".am-datepicker-months td").append(t)
            }, a.prototype.fill = function () {
                var t = new Date(this.viewDate), e = t.getFullYear(), i = t.getMonth(), n = this.date.valueOf(),
                    o = new Date(e, i - 1, 28, 0, 0, 0, 0), s = r.getDaysInMonth(o.getFullYear(), o.getMonth()),
                    l = this.$picker.find(".am-datepicker-days .am-datepicker-select");
                l.text("zh_CN" === this.language ? e + a.locales[this.language].year[0] + " " + a.locales[this.language].months[i] : a.locales[this.language].months[i] + " " + e), o.setDate(s), o.setDate(s - (o.getDay() - this.weekStart + 7) % 7);
                var c = new Date(o);
                c.setDate(c.getDate() + 42), c = c.valueOf();
                for (var u, d, h, p = []; o.valueOf() < c;) o.getDay() === this.weekStart && p.push("<tr>"), u = this.onRender(o), d = o.getFullYear(), h = o.getMonth(), i > h && d === e || e > d ? u += " am-datepicker-old" : (h > i && d === e || d > e) && (u += " am-datepicker-new"), o.valueOf() === n && (u += " am-active"), p.push('<td class="am-datepicker-day ' + u + '">' + o.getDate() + "</td>"), o.getDay() === this.weekEnd && p.push("</tr>"), o.setDate(o.getDate() + 1);
                this.$picker.find(".am-datepicker-days tbody").empty().append(p.join(""));
                var f = this.date.getFullYear(),
                    m = this.$picker.find(".am-datepicker-months").find(".am-datepicker-select").text(e);
                m = m.end().find("span").removeClass("am-active").removeClass("am-disabled");
                for (var v = 0; 12 > v;) this.onRender(t.setFullYear(e, v)) && m.eq(v).addClass("am-disabled"), v++;
                f === e && m.eq(this.date.getMonth()).removeClass("am-disabled").addClass("am-active"), p = "", e = 10 * parseInt(e / 10, 10);
                var g,
                    w = this.$picker.find(".am-datepicker-years").find(".am-datepicker-select").text(e + "-" + (e + 9)).end().find("td");
                e -= 1;
                for (var y = -1; 11 > y; y++) g = this.onRender(t.setFullYear(e)), p += '<span class="' + g + (-1 === y || 10 === y ? " am-datepicker-old" : "") + (f === e ? " am-active" : "") + '">' + e + "</span>", e += 1;
                w.html(p)
            }, a.prototype.click = function (t) {
                t.stopPropagation(), t.preventDefault();
                var e, i, o = this.$picker.find(".am-datepicker-days").find(".am-active"),
                    s = this.$picker.find(".am-datepicker-months"), a = s.find(".am-active").index(),
                    l = n(t.target).closest("span, td, th");
                if (1 === l.length) switch (l[0].nodeName.toLowerCase()) {
                    case"th":
                        switch (l[0].className) {
                            case"am-datepicker-switch":
                                this.showMode(1);
                                break;
                            case"am-datepicker-prev":
                            case"am-datepicker-next":
                                this.viewDate["set" + r.modes[this.viewMode].navFnc].call(this.viewDate, this.viewDate["get" + r.modes[this.viewMode].navFnc].call(this.viewDate) + r.modes[this.viewMode].navStep * ("am-datepicker-prev" === l[0].className ? -1 : 1)), this.fill(), this.set()
                        }
                        break;
                    case"span":
                        if (l.is(".am-disabled")) return;
                        l.is(".am-datepicker-month") ? (e = l.parent().find("span").index(l), l.is(".am-active") ? this.viewDate.setMonth(e, o.text()) : this.viewDate.setMonth(e)) : (i = parseInt(l.text(), 10) || 0, l.is(".am-active") ? this.viewDate.setFullYear(i, a, o.text()) : this.viewDate.setFullYear(i)), 0 !== this.viewMode && (this.date = new Date(this.viewDate), this.$element.trigger({
                            type: "changeDate.datepicker.amui",
                            date: this.date,
                            viewMode: r.modes[this.viewMode].clsName
                        })), this.showMode(-1), this.fill(), this.set();
                        break;
                    case"td":
                        if (l.is(".am-datepicker-day") && !l.is(".am-disabled")) {
                            var c = parseInt(l.text(), 10) || 1;
                            e = this.viewDate.getMonth(), l.is(".am-datepicker-old") ? e -= 1 : l.is(".am-datepicker-new") && (e += 1), i = this.viewDate.getFullYear(), this.date = new Date(i, e, c, 0, 0, 0, 0), this.viewDate = new Date(i, e, Math.min(28, c), 0, 0, 0, 0), this.fill(), this.set(), this.$element.trigger({
                                type: "changeDate.datepicker.amui",
                                date: this.date,
                                viewMode: r.modes[this.viewMode].clsName
                            }), this.options.autoClose && this.close()
                        }
                }
            }, a.prototype.mousedown = function (t) {
                t.stopPropagation(), t.preventDefault()
            }, a.prototype.showMode = function (t) {
                t && (this.viewMode = Math.max(this.minViewMode, Math.min(2, this.viewMode + t))), this.$picker.find(">div").hide().filter(".am-datepicker-" + r.modes[this.viewMode].clsName).show()
            }, a.prototype.isOutView = function () {
                var t = this.component ? this.component.offset() : this.$element.offset(),
                    e = {outRight: !1, outBottom: !1}, i = this.$picker, n = t.left + i.outerWidth(!0),
                    o = t.top + i.outerHeight(!0) + this.$element.innerHeight();
                return n > s.width() && (e.outRight = !0), o > s.height() && (e.outBottom = !0), e
            }, a.prototype.getLocale = function (t) {
                return t || (t = navigator.language && navigator.language.split("-"), t[1] = t[1].toUpperCase(), t = t.join("_")), a.locales[t] || (t = "en_US"), t
            }, a.prototype.setTheme = function () {
                this.theme && this.$picker.addClass("am-datepicker-" + this.theme)
            }, a.locales = {
                en_US: {
                    days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
                    daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
                    daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
                    months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
                    monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
                    weekStart: 0
                },
                zh_CN: {
                    days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
                    daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
                    daysMin: ["日", "一", "二", "三", "四", "五", "六"],
                    months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
                    monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
                    weekStart: 1,
                    year: ["年"]
                }
            };
            var r = {
                modes: [{clsName: "days", navFnc: "Month", navStep: 1}, {
                    clsName: "months",
                    navFnc: "FullYear",
                    navStep: 1
                }, {clsName: "years", navFnc: "FullYear", navStep: 10}],
                isLeapYear: function (t) {
                    return t % 4 === 0 && t % 100 !== 0 || t % 400 === 0
                },
                getDaysInMonth: function (t, e) {
                    return [31, r.isLeapYear(t) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][e]
                },
                parseFormat: function (t) {
                    var e = t.match(/[.\/\-\s].*?/), i = t.split(/\W+/);
                    if (!e || !i || 0 === i.length) throw new Error("Invalid date format.");
                    return {separator: e, parts: i}
                },
                parseDate: function (t, e) {
                    var i, n = t.split(e.separator);
                    if (t = new Date, t.setHours(0), t.setMinutes(0), t.setSeconds(0), t.setMilliseconds(0), n.length === e.parts.length) {
                        for (var o = t.getFullYear(), s = t.getDate(), a = t.getMonth(), r = 0, l = e.parts.length; l > r; r++) switch (i = parseInt(n[r], 10) || 1, e.parts[r]) {
                            case"dd":
                            case"d":
                                s = i, t.setDate(i);
                                break;
                            case"mm":
                            case"m":
                                a = i - 1, t.setMonth(i - 1);
                                break;
                            case"yy":
                                o = 2e3 + i, t.setFullYear(2e3 + i);
                                break;
                            case"yyyy":
                                o = i, t.setFullYear(i)
                        }
                        t = new Date(o, a, s, 0, 0, 0)
                    }
                    return t
                },
                formatDate: function (t, e) {
                    var i = {
                        d: t.getDate(),
                        m: t.getMonth() + 1,
                        yy: t.getFullYear().toString().substring(2),
                        yyyy: t.getFullYear()
                    }, n = [];
                    i.dd = (i.d < 10 ? "0" : "") + i.d, i.mm = (i.m < 10 ? "0" : "") + i.m;
                    for (var o = 0, s = e.parts.length; s > o; o++) n.push(i[e.parts[o]]);
                    return n.join(e.separator)
                },
                headTemplate: '<thead><tr class="am-datepicker-header"><th class="am-datepicker-prev"><i class="am-datepicker-prev-icon"></i></th><th colspan="5" class="am-datepicker-switch"><div class="am-datepicker-select"></div></th><th class="am-datepicker-next"><i class="am-datepicker-next-icon"></i></th></tr></thead>',
                contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>'
            };
            r.template = '<div class="am-datepicker am-datepicker-dropdown"><div class="am-datepicker-caret"></div><div class="am-datepicker-days"><table class="am-datepicker-table">' + r.headTemplate + '<tbody></tbody></table></div><div class="am-datepicker-months"><table class="am-datepicker-table">' + r.headTemplate + r.contTemplate + '</table></div><div class="am-datepicker-years"><table class="am-datepicker-table">' + r.headTemplate + r.contTemplate + "</table></div></div>", n.fn.datepicker = function (t, e) {
                return this.each(function () {
                    var i = n(this), s = i.data("amui.datepicker"),
                        r = n.extend({}, o.utils.options(i.data("amDatepicker")), "object" == typeof t && t);
                    s || i.data("amui.datepicker", s = new a(this, r)), "string" == typeof t && s[t] && s[t](e)
                })
            }, n.fn.datepicker.Constructor = a, o.ready(function () {
                n("[data-am-datepicker]").datepicker()
            }), n.AMUI.datepicker = a, e.exports = a
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 28: [function (t, e) {
        (function (i) {
            "use strict";
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                o = t("./core"), s = n(document), a = o.support.transition, r = function () {
                    this.id = o.utils.generateGUID("am-dimmer"), this.$element = n(r.DEFAULTS.tpl, {id: this.id}), this.inited = !1, this.scrollbarWidth = 0, this.$used = n([])
                };
            r.DEFAULTS = {tpl: '<div class="am-dimmer" data-am-dimmer></div>'}, r.prototype.init = function () {
                return this.inited || (n(document.body).append(this.$element), this.inited = !0, s.trigger("init.dimmer.amui")), this
            }, r.prototype.open = function (t) {
                this.inited || this.init();
                var e = this.$element;
                return t && (this.$used = this.$used.add(n(t))), this.checkScrollbar().setScrollbar(), e.off(a.end).show().trigger("open.dimmer.amui"), setTimeout(function () {
                    e.addClass("am-active")
                }, 0), this
            }, r.prototype.close = function (t, e) {
                function i() {
                    o.hide(), this.resetScrollbar()
                }

                if (this.$used = this.$used.not(n(t)), !e && this.$used.length) return this;
                var o = this.$element;
                return o.removeClass("am-active").trigger("close.dimmer.amui"), i.call(this), this
            }, r.prototype.checkScrollbar = function () {
                return this.scrollbarWidth = o.utils.measureScrollbar(), this
            }, r.prototype.setScrollbar = function () {
                var t = n(document.body), e = parseInt(t.css("padding-right") || 0, 10);
                return this.scrollbarWidth && t.css("padding-right", e + this.scrollbarWidth), t.addClass("am-dimmer-active"), this
            }, r.prototype.resetScrollbar = function () {
                return n(document.body).css("padding-right", "").removeClass("am-dimmer-active"), this
            };
            var l = new r;
            n.AMUI.dimmer = l, e.exports = l
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 29: [function (t, e) {
        (function (i) {
            "use strict";

            function n(t) {
                return this.each(function () {
                    var e = o(this), i = e.data("amui.dropdown"),
                        n = o.extend({}, s.utils.parseOptions(e.attr("data-am-dropdown")), "object" == typeof t && t);
                    i || e.data("amui.dropdown", i = new r(this, n)), "string" == typeof t && i[t]()
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = t("./core"), a = s.support.animation, r = function (t, e) {
                    this.options = o.extend({}, r.DEFAULTS, e), e = this.options, this.$element = o(t), this.$toggle = this.$element.find(e.selector.toggle), this.$dropdown = this.$element.find(e.selector.dropdown), this.$boundary = e.boundary === window ? o(window) : this.$element.closest(e.boundary), this.$justify = e.justify && o(e.justify).length && o(e.justify) || void 0, !this.$boundary.length && (this.$boundary = o(window)), this.active = this.$element.hasClass("am-active") ? !0 : !1, this.animating = null, this.events()
                };
            r.DEFAULTS = {
                animation: "am-animation-slide-top-fixed",
                boundary: window,
                justify: void 0,
                selector: {dropdown: ".am-dropdown-content", toggle: ".am-dropdown-toggle"},
                trigger: "click"
            }, r.prototype.toggle = function () {
                this.clear(), this.animating || this[this.active ? "close" : "open"]()
            }, r.prototype.open = function () {
                var t = this.$toggle, e = this.$element, i = this.$dropdown;
                if (!t.is(".am-disabled, :disabled") && !this.active) {
                    e.trigger("open.dropdown.amui").addClass("am-active"), t.trigger("focus"), this.checkDimensions();
                    var n = o.proxy(function () {
                        e.trigger("opened.dropdown.amui"), this.active = !0, this.animating = 0
                    }, this);
                    a ? (this.animating = 1, i.addClass(this.options.animation).on(a.end + ".open.dropdown.amui", o.proxy(function () {
                        n(), i.removeClass(this.options.animation)
                    }, this))) : n()
                }
            }, r.prototype.close = function () {
                if (this.active) {
                    var t = "am-dropdown-animation", e = this.$element, i = this.$dropdown;
                    e.trigger("close.dropdown.amui");
                    var n = o.proxy(function () {
                        e.removeClass("am-active").trigger("closed.dropdown.amui"), this.active = !1, this.animating = 0, this.$toggle.blur()
                    }, this);
                    a ? (i.removeClass(this.options.animation), i.addClass(t), this.animating = 1, i.one(a.end + ".close.dropdown.amui", function () {
                        i.removeClass(t), n()
                    })) : n()
                }
            }, r.prototype.checkDimensions = function () {
                if (this.$dropdown.length) {
                    var t = this.$dropdown, e = t.offset(), i = t.outerWidth(), n = this.$boundary.width(),
                        s = o.isWindow(this.boundary) && this.$boundary.offset() ? this.$boundary.offset().left : 0;
                    this.$justify && t.css({"min-width": this.$justify.css("width")}), i + (e.left - s) > n && this.$element.addClass("am-dropdown-flip")
                }
            }, r.prototype.clear = function () {
                o("[data-am-dropdown]").not(this.$element).each(function () {
                    var t = o(this).data("amui.dropdown");
                    t && t.close()
                })
            }, r.prototype.events = function () {
                var t = "dropdown.amui", e = this.$toggle;
                e.on("click." + t, o.proxy(function (t) {
                    t.preventDefault(), this.toggle()
                }, this)), o(document).on("keydown.dropdown.amui", o.proxy(function (t) {
                    27 === t.keyCode && this.active && this.close()
                }, this)).on("click.outer.dropdown.amui", o.proxy(function (t) {
                    !this.active || this.$element[0] !== t.target && this.$element.find(t.target).length || this.close()
                }, this))
            }, o.fn.dropdown = n, s.ready(function (t) {
                o("[data-am-dropdown]", t).dropdown()
            }), o(document).on("click.dropdown.amui.data-api", ".am-dropdown form", function (t) {
                t.stopPropagation()
            }), o.AMUI.dropdown = r, e.exports = r
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 30: [function (t, e) {
        (function (i) {
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                o = t("./core");
            n.flexslider = function (t, e) {
                var i = n(t);
                i.vars = n.extend({}, n.flexslider.defaults, e);
                var o, s = i.vars.namespace,
                    a = window.navigator && window.navigator.msPointerEnabled && window.MSGesture,
                    r = ("ontouchstart" in window || a || window.DocumentTouch && document instanceof DocumentTouch) && i.vars.touch,
                    l = "click touchend MSPointerUp keyup", c = "", u = "vertical" === i.vars.direction,
                    d = i.vars.reverse, h = i.vars.itemWidth > 0, p = "fade" === i.vars.animation,
                    f = "" !== i.vars.asNavFor, m = {}, v = !0;
                n.data(t, "flexslider", i), m = {
                    init: function () {
                        i.animating = !1, i.currentSlide = parseInt(i.vars.startAt ? i.vars.startAt : 0, 10), isNaN(i.currentSlide) && (i.currentSlide = 0), i.animatingTo = i.currentSlide, i.atEnd = 0 === i.currentSlide || i.currentSlide === i.last, i.containerSelector = i.vars.selector.substr(0, i.vars.selector.search(" ")), i.slides = n(i.vars.selector, i), i.container = n(i.containerSelector, i), i.count = i.slides.length, i.syncExists = n(i.vars.sync).length > 0, "slide" === i.vars.animation && (i.vars.animation = "swing"), i.prop = u ? "top" : "marginLeft", i.args = {}, i.manualPause = !1, i.stopped = !1, i.started = !1, i.startTimeout = null, i.transitions = !i.vars.video && !p && i.vars.useCSS && function () {
                            var t = document.createElement("div"),
                                e = ["perspectiveProperty", "WebkitPerspective", "MozPerspective", "OPerspective", "msPerspective"];
                            for (var n in e) if (void 0 !== t.style[e[n]]) return i.pfx = e[n].replace("Perspective", "").toLowerCase(), i.prop = "-" + i.pfx + "-transform", !0;
                            return !1
                        }(), i.ensureAnimationEnd = "", "" !== i.vars.controlsContainer && (i.controlsContainer = n(i.vars.controlsContainer).length > 0 && n(i.vars.controlsContainer)), "" !== i.vars.manualControls && (i.manualControls = n(i.vars.manualControls).length > 0 && n(i.vars.manualControls)), i.vars.randomize && (i.slides.sort(function () {
                            return Math.round(Math.random()) - .5
                        }), i.container.empty().append(i.slides)), i.doMath(), i.setup("init"), i.vars.controlNav && m.controlNav.setup(), i.vars.directionNav && m.directionNav.setup(), i.vars.keyboard && (1 === n(i.containerSelector).length || i.vars.multipleKeyboard) && n(document).bind("keyup", function (t) {
                            var e = t.keyCode;
                            if (!i.animating && (39 === e || 37 === e)) {
                                var n = 39 === e ? i.getTarget("next") : 37 === e ? i.getTarget("prev") : !1;
                                i.flexAnimate(n, i.vars.pauseOnAction)
                            }
                        }), i.vars.mousewheel && i.bind("mousewheel", function (t, e) {
                            t.preventDefault();
                            var n = i.getTarget(0 > e ? "next" : "prev");
                            i.flexAnimate(n, i.vars.pauseOnAction)
                        }), i.vars.pausePlay && m.pausePlay.setup(), i.vars.slideshow && i.vars.pauseInvisible && m.pauseInvisible.init(), i.vars.slideshow && (i.vars.pauseOnHover && i.hover(function () {
                            i.manualPlay || i.manualPause || i.pause()
                        }, function () {
                            i.manualPause || i.manualPlay || i.stopped || i.play()
                        }), i.vars.pauseInvisible && m.pauseInvisible.isHidden() || (i.vars.initDelay > 0 ? i.startTimeout = setTimeout(i.play, i.vars.initDelay) : i.play())), f && m.asNav.setup(), r && i.vars.touch && m.touch(), (!p || p && i.vars.smoothHeight) && n(window).bind("resize orientationchange focus", m.resize), i.find("img").attr("draggable", "false"), setTimeout(function () {
                            i.vars.start(i)
                        }, 200)
                    }, asNav: {
                        setup: function () {
                            i.asNav = !0, i.animatingTo = Math.floor(i.currentSlide / i.move), i.currentItem = i.currentSlide, i.slides.removeClass(s + "active-slide").eq(i.currentItem).addClass(s + "active-slide"), a ? (t._slider = i, i.slides.each(function () {
                                var t = this;
                                t._gesture = new MSGesture, t._gesture.target = t, t.addEventListener("MSPointerDown", function (t) {
                                    t.preventDefault(), t.currentTarget._gesture && t.currentTarget._gesture.addPointer(t.pointerId)
                                }, !1), t.addEventListener("MSGestureTap", function (t) {
                                    t.preventDefault();
                                    var e = n(this), o = e.index();
                                    n(i.vars.asNavFor).data("flexslider").animating || e.hasClass("active") || (i.direction = i.currentItem < o ? "next" : "prev", i.flexAnimate(o, i.vars.pauseOnAction, !1, !0, !0))
                                })
                            })) : i.slides.on(l, function (t) {
                                t.preventDefault();
                                var e = n(this), o = e.index(), a = e.offset().left - n(i).scrollLeft();
                                0 >= a && e.hasClass(s + "active-slide") ? i.flexAnimate(i.getTarget("prev"), !0) : n(i.vars.asNavFor).data("flexslider").animating || e.hasClass(s + "active-slide") || (i.direction = i.currentItem < o ? "next" : "prev", i.flexAnimate(o, i.vars.pauseOnAction, !1, !0, !0))
                            })
                        }
                    }, controlNav: {
                        setup: function () {
                            i.manualControls ? m.controlNav.setupManual() : m.controlNav.setupPaging()
                        }, setupPaging: function () {
                            var t, e, o = "thumbnails" === i.vars.controlNav ? "control-thumbs" : "control-paging",
                                a = 1;
                            if (i.controlNavScaffold = n('<ol class="' + s + "control-nav " + s + o + '"></ol>'), i.pagingCount > 1) for (var r = 0; r < i.pagingCount; r++) {
                                if (e = i.slides.eq(r), t = "thumbnails" === i.vars.controlNav ? '<img src="' + e.attr("data-thumb") + '"/>' : "<a>" + a + "</a>", "thumbnails" === i.vars.controlNav && !0 === i.vars.thumbCaptions) {
                                    var u = e.attr("data-thumbcaption");
                                    "" != u && void 0 != u && (t += '<span class="' + s + 'caption">' + u + "</span>")
                                }
                                i.controlNavScaffold.append("<li>" + t + "<i></i></li>"), a++
                            }
                            i.controlsContainer ? n(i.controlsContainer).append(i.controlNavScaffold) : i.append(i.controlNavScaffold), m.controlNav.set(), m.controlNav.active(), i.controlNavScaffold.delegate("a, img", l, function (t) {
                                if (t.preventDefault(), "" === c || c === t.type) {
                                    var e = n(this), o = i.controlNav.index(e);
                                    e.hasClass(s + "active") || (i.direction = o > i.currentSlide ? "next" : "prev", i.flexAnimate(o, i.vars.pauseOnAction))
                                }
                                "" === c && (c = t.type), m.setToClearWatchedEvent()
                            })
                        }, setupManual: function () {
                            i.controlNav = i.manualControls, m.controlNav.active(), i.controlNav.bind(l, function (t) {
                                if (t.preventDefault(), "" === c || c === t.type) {
                                    var e = n(this), o = i.controlNav.index(e);
                                    e.hasClass(s + "active") || (i.direction = o > i.currentSlide ? "next" : "prev", i.flexAnimate(o, i.vars.pauseOnAction))
                                }
                                "" === c && (c = t.type), m.setToClearWatchedEvent()
                            })
                        }, set: function () {
                            var t = "thumbnails" === i.vars.controlNav ? "img" : "a";
                            i.controlNav = n("." + s + "control-nav li " + t, i.controlsContainer ? i.controlsContainer : i)
                        }, active: function () {
                            i.controlNav.removeClass(s + "active").eq(i.animatingTo).addClass(s + "active")
                        }, update: function (t, e) {
                            i.pagingCount > 1 && "add" === t ? i.controlNavScaffold.append(n("<li><a>" + i.count + "</a></li>")) : 1 === i.pagingCount ? i.controlNavScaffold.find("li").remove() : i.controlNav.eq(e).closest("li").remove(), m.controlNav.set(), i.pagingCount > 1 && i.pagingCount !== i.controlNav.length ? i.update(e, t) : m.controlNav.active()
                        }
                    }, directionNav: {
                        setup: function () {
                            var t = n('<ul class="' + s + 'direction-nav"><li><a class="' + s + 'prev" href="#">' + i.vars.prevText + '</a></li><li><a class="' + s + 'next" href="#">' + i.vars.nextText + "</a></li></ul>");
                            i.controlsContainer ? (n(i.controlsContainer).append(t), i.directionNav = n("." + s + "direction-nav li a", i.controlsContainer)) : (i.append(t), i.directionNav = n("." + s + "direction-nav li a", i)), m.directionNav.update(), i.directionNav.bind(l, function (t) {
                                t.preventDefault();
                                var e;
                                ("" === c || c === t.type) && (e = i.getTarget(n(this).hasClass(s + "next") ? "next" : "prev"), i.flexAnimate(e, i.vars.pauseOnAction)), "" === c && (c = t.type), m.setToClearWatchedEvent()
                            })
                        }, update: function () {
                            var t = s + "disabled";
                            1 === i.pagingCount ? i.directionNav.addClass(t).attr("tabindex", "-1") : i.vars.animationLoop ? i.directionNav.removeClass(t).removeAttr("tabindex") : 0 === i.animatingTo ? i.directionNav.removeClass(t).filter("." + s + "prev").addClass(t).attr("tabindex", "-1") : i.animatingTo === i.last ? i.directionNav.removeClass(t).filter("." + s + "next").addClass(t).attr("tabindex", "-1") : i.directionNav.removeClass(t).removeAttr("tabindex")
                        }
                    }, pausePlay: {
                        setup: function () {
                            var t = n('<div class="' + s + 'pauseplay"><a></a></div>');
                            i.controlsContainer ? (i.controlsContainer.append(t), i.pausePlay = n("." + s + "pauseplay a", i.controlsContainer)) : (i.append(t), i.pausePlay = n("." + s + "pauseplay a", i)), m.pausePlay.update(i.vars.slideshow ? s + "pause" : s + "play"), i.pausePlay.bind(l, function (t) {
                                t.preventDefault(), ("" === c || c === t.type) && (n(this).hasClass(s + "pause") ? (i.manualPause = !0, i.manualPlay = !1, i.pause()) : (i.manualPause = !1, i.manualPlay = !0, i.play())), "" === c && (c = t.type), m.setToClearWatchedEvent()
                            })
                        }, update: function (t) {
                            "play" === t ? i.pausePlay.removeClass(s + "pause").addClass(s + "play").html(i.vars.playText) : i.pausePlay.removeClass(s + "play").addClass(s + "pause").html(i.vars.pauseText)
                        }
                    }, touch: function () {
                        function e(e) {
                            i.animating ? e.preventDefault() : (window.navigator.msPointerEnabled || 1 === e.touches.length) && (i.pause(), v = u ? i.h : i.w, w = Number(new Date), b = e.touches[0].pageX, T = e.touches[0].pageY, m = h && d && i.animatingTo === i.last ? 0 : h && d ? i.limit - (i.itemW + i.vars.itemMargin) * i.move * i.animatingTo : h && i.currentSlide === i.last ? i.limit : h ? (i.itemW + i.vars.itemMargin) * i.move * i.currentSlide : d ? (i.last - i.currentSlide + i.cloneOffset) * v : (i.currentSlide + i.cloneOffset) * v, c = u ? T : b, f = u ? b : T, t.addEventListener("touchmove", n, !1), t.addEventListener("touchend", o, !1))
                        }

                        function n(t) {
                            b = t.touches[0].pageX, T = t.touches[0].pageY, g = u ? c - T : c - b, y = u ? Math.abs(g) < Math.abs(b - f) : Math.abs(g) < Math.abs(T - f);
                            var e = 500;
                            (!y || Number(new Date) - w > e) && (t.preventDefault(), !p && i.transitions && (i.vars.animationLoop || (g /= 0 === i.currentSlide && 0 > g || i.currentSlide === i.last && g > 0 ? Math.abs(g) / v + 2 : 1), i.setProps(m + g, "setTouch")))
                        }

                        function o() {
                            if (t.removeEventListener("touchmove", n, !1), i.animatingTo === i.currentSlide && !y && null !== g) {
                                var e = d ? -g : g, s = i.getTarget(e > 0 ? "next" : "prev");
                                i.canAdvance(s) && (Number(new Date) - w < 550 && Math.abs(e) > 50 || Math.abs(e) > v / 2) ? i.flexAnimate(s, i.vars.pauseOnAction) : p || i.flexAnimate(i.currentSlide, i.vars.pauseOnAction, !0)
                            }
                            t.removeEventListener("touchend", o, !1), c = null, f = null, g = null, m = null
                        }

                        function s(e) {
                            e.stopPropagation(), i.animating ? e.preventDefault() : (i.pause(), t._gesture.addPointer(e.pointerId), x = 0, v = u ? i.h : i.w, w = Number(new Date), m = h && d && i.animatingTo === i.last ? 0 : h && d ? i.limit - (i.itemW + i.vars.itemMargin) * i.move * i.animatingTo : h && i.currentSlide === i.last ? i.limit : h ? (i.itemW + i.vars.itemMargin) * i.move * i.currentSlide : d ? (i.last - i.currentSlide + i.cloneOffset) * v : (i.currentSlide + i.cloneOffset) * v)
                        }

                        function r(e) {
                            e.stopPropagation();
                            var i = e.target._slider;
                            if (i) {
                                var n = -e.translationX, o = -e.translationY;
                                return x += u ? o : n, g = x, y = u ? Math.abs(x) < Math.abs(-n) : Math.abs(x) < Math.abs(-o), e.detail === e.MSGESTURE_FLAG_INERTIA ? void setImmediate(function () {
                                    t._gesture.stop()
                                }) : void ((!y || Number(new Date) - w > 500) && (e.preventDefault(), !p && i.transitions && (i.vars.animationLoop || (g = x / (0 === i.currentSlide && 0 > x || i.currentSlide === i.last && x > 0 ? Math.abs(x) / v + 2 : 1)), i.setProps(m + g, "setTouch"))))
                            }
                        }

                        function l(t) {
                            t.stopPropagation();
                            var e = t.target._slider;
                            if (e) {
                                if (e.animatingTo === e.currentSlide && !y && null !== g) {
                                    var i = d ? -g : g, n = e.getTarget(i > 0 ? "next" : "prev");
                                    e.canAdvance(n) && (Number(new Date) - w < 550 && Math.abs(i) > 50 || Math.abs(i) > v / 2) ? e.flexAnimate(n, e.vars.pauseOnAction) : p || e.flexAnimate(e.currentSlide, e.vars.pauseOnAction, !0)
                                }
                                c = null, f = null, g = null, m = null, x = 0
                            }
                        }

                        var c, f, m, v, g, w, y = !1, b = 0, T = 0, x = 0;
                        a ? (t.style.msTouchAction = "none", t._gesture = new MSGesture, t._gesture.target = t, t.addEventListener("MSPointerDown", s, !1), t._slider = i, t.addEventListener("MSGestureChange", r, !1), t.addEventListener("MSGestureEnd", l, !1)) : t.addEventListener("touchstart", e, !1)
                    }, resize: function () {
                        !i.animating && i.is(":visible") && (h || i.doMath(), p ? m.smoothHeight() : h ? (i.slides.width(i.computedW), i.update(i.pagingCount), i.setProps()) : u ? (i.viewport.height(i.h), i.setProps(i.h, "setTotal")) : (i.vars.smoothHeight && m.smoothHeight(), i.newSlides.width(i.computedW), i.setProps(i.computedW, "setTotal")))
                    }, smoothHeight: function (t) {
                        if (!u || p) {
                            var e = p ? i : i.viewport;
                            t ? e.animate({height: i.slides.eq(i.animatingTo).height()}, t) : e.height(i.slides.eq(i.animatingTo).height())
                        }
                    }, sync: function (t) {
                        var e = n(i.vars.sync).data("flexslider"), o = i.animatingTo;
                        switch (t) {
                            case"animate":
                                e.flexAnimate(o, i.vars.pauseOnAction, !1, !0);
                                break;
                            case"play":
                                e.playing || e.asNav || e.play();
                                break;
                            case"pause":
                                e.pause()
                        }
                    }, uniqueID: function (t) {
                        return t.filter("[id]").add(t.find("[id]")).each(function () {
                            var t = n(this);
                            t.attr("id", t.attr("id") + "_clone")
                        }), t
                    }, pauseInvisible: {
                        visProp: null, init: function () {
                            var t = ["webkit", "moz", "ms", "o"];
                            if ("hidden" in document) return "hidden";
                            for (var e = 0; e < t.length; e++) t[e] + "Hidden" in document && (m.pauseInvisible.visProp = t[e] + "Hidden");
                            if (m.pauseInvisible.visProp) {
                                var n = m.pauseInvisible.visProp.replace(/[H|h]idden/, "") + "visibilitychange";
                                document.addEventListener(n, function () {
                                    m.pauseInvisible.isHidden() ? i.startTimeout ? clearTimeout(i.startTimeout) : i.pause() : i.started ? i.play() : i.vars.initDelay > 0 ? setTimeout(i.play, i.vars.initDelay) : i.play()
                                })
                            }
                        }, isHidden: function () {
                            return document[m.pauseInvisible.visProp] || !1
                        }
                    }, setToClearWatchedEvent: function () {
                        clearTimeout(o), o = setTimeout(function () {
                            c = ""
                        }, 3e3)
                    }
                }, i.flexAnimate = function (t, e, o, a, l) {
                    if (i.vars.animationLoop || t === i.currentSlide || (i.direction = t > i.currentSlide ? "next" : "prev"), f && 1 === i.pagingCount && (i.direction = i.currentItem < t ? "next" : "prev"), !i.animating && (i.canAdvance(t, l) || o) && i.is(":visible")) {
                        if (f && a) {
                            var c = n(i.vars.asNavFor).data("flexslider");
                            if (i.atEnd = 0 === t || t === i.count - 1, c.flexAnimate(t, !0, !1, !0, l), i.direction = i.currentItem < t ? "next" : "prev", c.direction = i.direction, Math.ceil((t + 1) / i.visible) - 1 === i.currentSlide || 0 === t) return i.currentItem = t, i.slides.removeClass(s + "active-slide").eq(t).addClass(s + "active-slide"), !1;
                            i.currentItem = t, i.slides.removeClass(s + "active-slide").eq(t).addClass(s + "active-slide"), t = Math.floor(t / i.visible)
                        }
                        if (i.animating = !0, i.animatingTo = t, e && i.pause(), i.vars.before(i), i.syncExists && !l && m.sync("animate"), i.vars.controlNav && m.controlNav.active(), h || i.slides.removeClass(s + "active-slide").eq(t).addClass(s + "active-slide"), i.atEnd = 0 === t || t === i.last, i.vars.directionNav && m.directionNav.update(), t === i.last && (i.vars.end(i), i.vars.animationLoop || i.pause()), p) r ? (i.slides.eq(i.currentSlide).css({
                            opacity: 0,
                            zIndex: 1
                        }), i.slides.eq(t).css({
                            opacity: 1,
                            zIndex: 2
                        }), i.wrapup(y)) : (i.slides.eq(i.currentSlide).css({zIndex: 1}).animate({opacity: 0}, i.vars.animationSpeed, i.vars.easing), i.slides.eq(t).css({zIndex: 2}).animate({opacity: 1}, i.vars.animationSpeed, i.vars.easing, i.wrapup)); else {
                            var v, g, w, y = u ? i.slides.filter(":first").height() : i.computedW;
                            h ? (v = i.vars.itemMargin, w = (i.itemW + v) * i.move * i.animatingTo, g = w > i.limit && 1 !== i.visible ? i.limit : w) : g = 0 === i.currentSlide && t === i.count - 1 && i.vars.animationLoop && "next" !== i.direction ? d ? (i.count + i.cloneOffset) * y : 0 : i.currentSlide === i.last && 0 === t && i.vars.animationLoop && "prev" !== i.direction ? d ? 0 : (i.count + 1) * y : d ? (i.count - 1 - t + i.cloneOffset) * y : (t + i.cloneOffset) * y, i.setProps(g, "", i.vars.animationSpeed), i.transitions ? (i.vars.animationLoop && i.atEnd || (i.animating = !1, i.currentSlide = i.animatingTo), i.container.unbind("webkitTransitionEnd transitionend"), i.container.bind("webkitTransitionEnd transitionend", function () {
                                clearTimeout(i.ensureAnimationEnd), i.wrapup(y)
                            }), clearTimeout(i.ensureAnimationEnd), i.ensureAnimationEnd = setTimeout(function () {
                                i.wrapup(y)
                            }, i.vars.animationSpeed + 100)) : i.container.animate(i.args, i.vars.animationSpeed, i.vars.easing, function () {
                                i.wrapup(y)
                            })
                        }
                        i.vars.smoothHeight && m.smoothHeight(i.vars.animationSpeed)
                    }
                }, i.wrapup = function (t) {
                    p || h || (0 === i.currentSlide && i.animatingTo === i.last && i.vars.animationLoop ? i.setProps(t, "jumpEnd") : i.currentSlide === i.last && 0 === i.animatingTo && i.vars.animationLoop && i.setProps(t, "jumpStart")), i.animating = !1, i.currentSlide = i.animatingTo, i.vars.after(i)
                }, i.animateSlides = function () {
                    !i.animating && v && i.flexAnimate(i.getTarget("next"))
                }, i.pause = function () {
                    clearInterval(i.animatedSlides), i.animatedSlides = null, i.playing = !1, i.vars.pausePlay && m.pausePlay.update("play"), i.syncExists && m.sync("pause")
                }, i.play = function () {
                    i.playing && clearInterval(i.animatedSlides), i.animatedSlides = i.animatedSlides || setInterval(i.animateSlides, i.vars.slideshowSpeed), i.started = i.playing = !0, i.vars.pausePlay && m.pausePlay.update("pause"), i.syncExists && m.sync("play")
                }, i.stop = function () {
                    i.pause(), i.stopped = !0
                }, i.canAdvance = function (t, e) {
                    var n = f ? i.pagingCount - 1 : i.last;
                    return e ? !0 : f && i.currentItem === i.count - 1 && 0 === t && "prev" === i.direction ? !0 : f && 0 === i.currentItem && t === i.pagingCount - 1 && "next" !== i.direction ? !1 : t !== i.currentSlide || f ? i.vars.animationLoop ? !0 : i.atEnd && 0 === i.currentSlide && t === n && "next" !== i.direction ? !1 : i.atEnd && i.currentSlide === n && 0 === t && "next" === i.direction ? !1 : !0 : !1
                }, i.getTarget = function (t) {
                    return i.direction = t, "next" === t ? i.currentSlide === i.last ? 0 : i.currentSlide + 1 : 0 === i.currentSlide ? i.last : i.currentSlide - 1
                }, i.setProps = function (t, e, n) {
                    var o = function () {
                        var n = t ? t : (i.itemW + i.vars.itemMargin) * i.move * i.animatingTo, o = function () {
                            if (h) return "setTouch" === e ? t : d && i.animatingTo === i.last ? 0 : d ? i.limit - (i.itemW + i.vars.itemMargin) * i.move * i.animatingTo : i.animatingTo === i.last ? i.limit : n;
                            switch (e) {
                                case"setTotal":
                                    return d ? (i.count - 1 - i.currentSlide + i.cloneOffset) * t : (i.currentSlide + i.cloneOffset) * t;
                                case"setTouch":
                                    return d ? t : t;
                                case"jumpEnd":
                                    return d ? t : i.count * t;
                                case"jumpStart":
                                    return d ? i.count * t : t;
                                default:
                                    return t
                            }
                        }();
                        return -1 * o + "px"
                    }();
                    i.transitions && (o = u ? "translate3d(0," + o + ",0)" : "translate3d(" + o + ",0,0)", n = void 0 !== n ? n / 1e3 + "s" : "0s", i.container.css("-" + i.pfx + "-transition-duration", n), i.container.css("transition-duration", n)), i.args[i.prop] = o, (i.transitions || void 0 === n) && i.container.css(i.args), i.container.css("transform", o)
                }, i.setup = function (t) {
                    if (p) i.slides.css({
                        width: "100%",
                        "float": "left",
                        marginRight: "-100%",
                        position: "relative"
                    }), "init" === t && (r ? i.slides.css({
                        opacity: 0,
                        display: "block",
                        webkitTransition: "opacity " + i.vars.animationSpeed / 1e3 + "s ease",
                        zIndex: 1
                    }).eq(i.currentSlide).css({
                        opacity: 1,
                        zIndex: 2
                    }) : 0 == i.vars.fadeFirstSlide ? i.slides.css({
                        opacity: 0,
                        display: "block",
                        zIndex: 1
                    }).eq(i.currentSlide).css({zIndex: 2}).css({opacity: 1}) : i.slides.css({
                        opacity: 0,
                        display: "block",
                        zIndex: 1
                    }).eq(i.currentSlide).css({zIndex: 2}).animate({opacity: 1}, i.vars.animationSpeed, i.vars.easing)), i.vars.smoothHeight && m.smoothHeight(); else {
                        var e, o;
                        "init" === t && (i.viewport = n('<div class="' + s + 'viewport"></div>').css({
                            overflow: "hidden",
                            position: "relative"
                        }).appendTo(i).append(i.container), i.cloneCount = 0, i.cloneOffset = 0, d && (o = n.makeArray(i.slides).reverse(), i.slides = n(o), i.container.empty().append(i.slides))), i.vars.animationLoop && !h && (i.cloneCount = 2, i.cloneOffset = 1, "init" !== t && i.container.find(".clone").remove(), i.container.append(m.uniqueID(i.slides.first().clone().addClass("clone")).attr("aria-hidden", "true")).prepend(m.uniqueID(i.slides.last().clone().addClass("clone")).attr("aria-hidden", "true"))), i.newSlides = n(i.vars.selector, i), e = d ? i.count - 1 - i.currentSlide + i.cloneOffset : i.currentSlide + i.cloneOffset, u && !h ? (i.container.height(200 * (i.count + i.cloneCount) + "%").css("position", "absolute").width("100%"), setTimeout(function () {
                            i.newSlides.css({display: "block"}), i.doMath(), i.viewport.height(i.h), i.setProps(e * i.h, "init")
                        }, "init" === t ? 100 : 0)) : (i.container.width(200 * (i.count + i.cloneCount) + "%"), i.setProps(e * i.computedW, "init"), setTimeout(function () {
                            i.doMath(), i.newSlides.css({
                                width: i.computedW,
                                "float": "left",
                                display: "block"
                            }), i.vars.smoothHeight && m.smoothHeight()
                        }, "init" === t ? 100 : 0))
                    }
                    h || i.slides.removeClass(s + "active-slide").eq(i.currentSlide).addClass(s + "active-slide"), i.vars.init(i)
                }, i.doMath = function () {
                    var t = i.slides.first(), e = i.vars.itemMargin, n = i.vars.minItems, o = i.vars.maxItems;
                    i.w = void 0 === i.viewport ? i.width() : i.viewport.width(), i.h = t.height(), i.boxPadding = t.outerWidth() - t.width(), h ? (i.itemT = i.vars.itemWidth + e, i.minW = n ? n * i.itemT : i.w, i.maxW = o ? o * i.itemT - e : i.w, i.itemW = i.minW > i.w ? (i.w - e * (n - 1)) / n : i.maxW < i.w ? (i.w - e * (o - 1)) / o : i.vars.itemWidth > i.w ? i.w : i.vars.itemWidth, i.visible = Math.floor(i.w / i.itemW), i.move = i.vars.move > 0 && i.vars.move < i.visible ? i.vars.move : i.visible, i.pagingCount = Math.ceil((i.count - i.visible) / i.move + 1), i.last = i.pagingCount - 1, i.limit = 1 === i.pagingCount ? 0 : i.vars.itemWidth > i.w ? i.itemW * (i.count - 1) + e * (i.count - 1) : (i.itemW + e) * i.count - i.w - e) : (i.itemW = i.w, i.pagingCount = i.count, i.last = i.count - 1), i.computedW = i.itemW - i.boxPadding
                }, i.update = function (t, e) {
                    i.doMath(), h || (t < i.currentSlide ? i.currentSlide += 1 : t <= i.currentSlide && 0 !== t && (i.currentSlide -= 1), i.animatingTo = i.currentSlide), i.vars.controlNav && !i.manualControls && ("add" === e && !h || i.pagingCount > i.controlNav.length ? m.controlNav.update("add") : ("remove" === e && !h || i.pagingCount < i.controlNav.length) && (h && i.currentSlide > i.last && (i.currentSlide -= 1, i.animatingTo -= 1), m.controlNav.update("remove", i.last))), i.vars.directionNav && m.directionNav.update()
                }, i.addSlide = function (t, e) {
                    var o = n(t);
                    i.count += 1, i.last = i.count - 1, u && d ? void 0 !== e ? i.slides.eq(i.count - e).after(o) : i.container.prepend(o) : void 0 !== e ? i.slides.eq(e).before(o) : i.container.append(o), i.update(e, "add"), i.slides = n(i.vars.selector + ":not(.clone)", i), i.setup(), i.vars.added(i)
                }, i.removeSlide = function (t) {
                    var e = isNaN(t) ? i.slides.index(n(t)) : t;
                    i.count -= 1, i.last = i.count - 1, isNaN(t) ? n(t, i.slides).remove() : u && d ? i.slides.eq(i.last).remove() : i.slides.eq(t).remove(), i.doMath(), i.update(e, "remove"), i.slides = n(i.vars.selector + ":not(.clone)", i), i.setup(), i.vars.removed(i)
                }, m.init()
            }, n(window).blur(function () {
                focused = !1
            }).focus(function () {
                focused = !0
            }), n.flexslider.defaults = {
                namespace: "am-",
                selector: ".am-slides > li",
                animation: "slide",
                easing: "swing",
                direction: "horizontal",
                reverse: !1,
                animationLoop: !0,
                smoothHeight: !1,
                startAt: 0,
                slideshow: !0,
                slideshowSpeed: 5e3,
                animationSpeed: 600,
                initDelay: 0,
                randomize: !1,
                fadeFirstSlide: !0,
                thumbCaptions: !1,
                pauseOnAction: !0,
                pauseOnHover: !1,
                pauseInvisible: !0,
                useCSS: !0,
                touch: !0,
                video: !1,
                controlNav: !0,
                directionNav: !0,
                prevText: "Previous",
                nextText: "Next",
                keyboard: !0,
                multipleKeyboard: !1,
                mousewheel: !1,
                pausePlay: !1,
                pauseText: "Pause",
                playText: "Play",
                controlsContainer: "",
                manualControls: "",
                sync: "",
                asNavFor: "",
                itemWidth: 0,
                itemMargin: 0,
                minItems: 1,
                maxItems: 0,
                move: 0,
                allowOneSlide: !0,
                start: function () {
                },
                before: function () {
                },
                after: function () {
                },
                end: function () {
                },
                added: function () {
                },
                removed: function () {
                },
                init: function () {
                }
            }, n.fn.flexslider = function (t) {
                if (void 0 === t && (t = {}), "object" == typeof t) return this.each(function () {
                    var e = n(this), i = t.selector ? t.selector : ".am-slides > li", o = e.find(i);
                    1 === o.length && t.allowOneSlide === !0 || 0 === o.length ? (o.fadeIn(400), t.start && t.start(e)) : void 0 === e.data("flexslider") && new n.flexslider(this, t)
                });
                var e = n(this).data("flexslider");
                switch (t) {
                    case"play":
                        e.play();
                        break;
                    case"pause":
                        e.pause();
                        break;
                    case"stop":
                        e.stop();
                        break;
                    case"next":
                        e.flexAnimate(e.getTarget("next"), !0);
                        break;
                    case"prev":
                    case"previous":
                        e.flexAnimate(e.getTarget("prev"), !0);
                        break;
                    default:
                        "number" == typeof t && e.flexAnimate(t, !0)
                }
            }, o.ready(function (t) {
                n("[data-am-flexslider]", t).each(function (t, e) {
                    var i = n(e), s = o.utils.parseOptions(i.data("amFlexslider"));
                    s.before = function (t) {
                        t._pausedTimer && (window.clearTimeout(t._pausedTimer), t._pausedTimer = null)
                    }, s.after = function (t) {
                        var e = t.vars.playAfterPaused;
                        !e || isNaN(e) || t.playing || t.manualPause || t.manualPlay || t.stopped || (t._pausedTimer = window.setTimeout(function () {
                            t.play()
                        }, e))
                    }, i.flexslider(s)
                })
            }), e.exports = n.flexslider
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 31: [function (t, e) {
        (function (i) {
            "use strict";

            function n(t, e) {
                this.wrapper = "string" == typeof t ? document.querySelector(t) : t, this.scroller = this.wrapper.children[0], this.scrollerStyle = this.scroller.style, this.options = {
                    startX: 0,
                    startY: 0,
                    scrollY: !0,
                    directionLockThreshold: 5,
                    momentum: !0,
                    bounce: !0,
                    bounceTime: 600,
                    bounceEasing: "",
                    preventDefault: !0,
                    preventDefaultException: {tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/},
                    HWCompositing: !0,
                    useTransition: !0,
                    useTransform: !0
                };
                for (var i in e) this.options[i] = e[i];
                this.translateZ = this.options.HWCompositing && a.hasPerspective ? " translateZ(0)" : "", this.options.useTransition = a.hasTransition && this.options.useTransition, this.options.useTransform = a.hasTransform && this.options.useTransform, this.options.eventPassthrough = this.options.eventPassthrough === !0 ? "vertical" : this.options.eventPassthrough, this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault, this.options.scrollY = "vertical" == this.options.eventPassthrough ? !1 : this.options.scrollY, this.options.scrollX = "horizontal" == this.options.eventPassthrough ? !1 : this.options.scrollX, this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough, this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold, this.options.bounceEasing = "string" == typeof this.options.bounceEasing ? a.ease[this.options.bounceEasing] || a.ease.circular : this.options.bounceEasing, this.options.resizePolling = void 0 === this.options.resizePolling ? 60 : this.options.resizePolling, this.options.tap === !0 && (this.options.tap = "tap"), this.x = 0, this.y = 0, this.directionX = 0, this.directionY = 0, this._events = {}, this._init(), this.refresh(), this.scrollTo(this.options.startX, this.options.startY), this.enable()
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = (t("./core"), window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (t) {
                    window.setTimeout(t, 1e3 / 60)
                }), a = function () {
                    function t(t) {
                        return n === !1 ? !1 : "" === n ? t : n + t.charAt(0).toUpperCase() + t.substr(1)
                    }

                    var e = {}, i = document.createElement("div").style, n = function () {
                        for (var t, e = ["t", "webkitT", "MozT", "msT", "OT"], n = 0, o = e.length; o > n; n++) if (t = e[n] + "ransform", t in i) return e[n].substr(0, e[n].length - 1);
                        return !1
                    }();
                    e.getTime = Date.now || function () {
                        return (new Date).getTime()
                    }, e.extend = function (t, e) {
                        for (var i in e) t[i] = e[i]
                    }, e.addEvent = function (t, e, i, n) {
                        t.addEventListener(e, i, !!n)
                    }, e.removeEvent = function (t, e, i, n) {
                        t.removeEventListener(e, i, !!n)
                    }, e.prefixPointerEvent = function (t) {
                        return window.MSPointerEvent ? "MSPointer" + t.charAt(9).toUpperCase() + t.substr(10) : t
                    }, e.momentum = function (t, e, i, n, o, s) {
                        var a, r, l = t - e, c = Math.abs(l) / i;
                        return s = void 0 === s ? 6e-4 : s, a = t + c * c / (2 * s) * (0 > l ? -1 : 1), r = c / s, n > a ? (a = o ? n - o / 2.5 * (c / 8) : n, l = Math.abs(a - t), r = l / c) : a > 0 && (a = o ? o / 2.5 * (c / 8) : 0, l = Math.abs(t) + a, r = l / c), {
                            destination: Math.round(a),
                            duration: r
                        }
                    };
                    var o = t("transform");
                    return e.extend(e, {
                        hasTransform: o !== !1,
                        hasPerspective: t("perspective") in i,
                        hasTouch: "ontouchstart" in window,
                        hasPointer: window.PointerEvent || window.MSPointerEvent,
                        hasTransition: t("transition") in i
                    }), e.isBadAndroid = /Android /.test(window.navigator.appVersion) && !/Chrome\/\d/.test(window.navigator.appVersion), e.extend(e.style = {}, {
                        transform: o,
                        transitionTimingFunction: t("transitionTimingFunction"),
                        transitionDuration: t("transitionDuration"),
                        transitionDelay: t("transitionDelay"),
                        transformOrigin: t("transformOrigin")
                    }), e.hasClass = function (t, e) {
                        var i = new RegExp("(^|\\s)" + e + "(\\s|$)");
                        return i.test(t.className)
                    }, e.addClass = function (t, i) {
                        if (!e.hasClass(t, i)) {
                            var n = t.className.split(" ");
                            n.push(i), t.className = n.join(" ")
                        }
                    }, e.removeClass = function (t, i) {
                        if (e.hasClass(t, i)) {
                            var n = new RegExp("(^|\\s)" + i + "(\\s|$)", "g");
                            t.className = t.className.replace(n, " ")
                        }
                    }, e.offset = function (t) {
                        for (var e = -t.offsetLeft, i = -t.offsetTop; t = t.offsetParent;) e -= t.offsetLeft, i -= t.offsetTop;
                        return {left: e, top: i}
                    }, e.preventDefaultException = function (t, e) {
                        for (var i in e) if (e[i].test(t[i])) return !0;
                        return !1
                    }, e.extend(e.eventType = {}, {
                        touchstart: 1,
                        touchmove: 1,
                        touchend: 1,
                        mousedown: 2,
                        mousemove: 2,
                        mouseup: 2,
                        pointerdown: 3,
                        pointermove: 3,
                        pointerup: 3,
                        MSPointerDown: 3,
                        MSPointerMove: 3,
                        MSPointerUp: 3
                    }), e.extend(e.ease = {}, {
                        quadratic: {
                            style: "cubic-bezier(0.25, 0.46, 0.45, 0.94)", fn: function (t) {
                                return t * (2 - t)
                            }
                        }, circular: {
                            style: "cubic-bezier(0.1, 0.57, 0.1, 1)", fn: function (t) {
                                return Math.sqrt(1 - --t * t)
                            }
                        }, back: {
                            style: "cubic-bezier(0.175, 0.885, 0.32, 1.275)", fn: function (t) {
                                var e = 4;
                                return (t -= 1) * t * ((e + 1) * t + e) + 1
                            }
                        }, bounce: {
                            style: "", fn: function (t) {
                                return (t /= 1) < 1 / 2.75 ? 7.5625 * t * t : 2 / 2.75 > t ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : 2.5 / 2.75 > t ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375
                            }
                        }, elastic: {
                            style: "", fn: function (t) {
                                var e = .22, i = .4;
                                return 0 === t ? 0 : 1 == t ? 1 : i * Math.pow(2, -10 * t) * Math.sin(2 * (t - e / 4) * Math.PI / e) + 1
                            }
                        }
                    }), e.tap = function (t, e) {
                        var i = document.createEvent("Event");
                        i.initEvent(e, !0, !0), i.pageX = t.pageX, i.pageY = t.pageY, t.target.dispatchEvent(i)
                    }, e.click = function (t) {
                        var e, i = t.target;
                        /(SELECT|INPUT|TEXTAREA)/i.test(i.tagName) || (e = document.createEvent("MouseEvents"), e.initMouseEvent("click", !0, !0, t.view, 1, i.screenX, i.screenY, i.clientX, i.clientY, t.ctrlKey, t.altKey, t.shiftKey, t.metaKey, 0, null), e._constructed = !0, i.dispatchEvent(e))
                    }, e
                }();
            n.prototype = {
                version: "5.1.3", _init: function () {
                    this._initEvents()
                }, destroy: function () {
                    this._initEvents(!0), this._execEvent("destroy")
                }, _transitionEnd: function (t) {
                    t.target == this.scroller && this.isInTransition && (this._transitionTime(), this.resetPosition(this.options.bounceTime) || (this.isInTransition = !1, this._execEvent("scrollEnd")))
                }, _start: function (t) {
                    if (!(1 != a.eventType[t.type] && 0 !== t.button || !this.enabled || this.initiated && a.eventType[t.type] !== this.initiated)) {
                        !this.options.preventDefault || a.isBadAndroid || a.preventDefaultException(t.target, this.options.preventDefaultException) || t.preventDefault();
                        var e, i = t.touches ? t.touches[0] : t;
                        this.initiated = a.eventType[t.type], this.moved = !1, this.distX = 0, this.distY = 0, this.directionX = 0, this.directionY = 0, this.directionLocked = 0, this._transitionTime(), this.startTime = a.getTime(), this.options.useTransition && this.isInTransition ? (this.isInTransition = !1, e = this.getComputedPosition(), this._translate(Math.round(e.x), Math.round(e.y)), this._execEvent("scrollEnd")) : !this.options.useTransition && this.isAnimating && (this.isAnimating = !1, this._execEvent("scrollEnd")), this.startX = this.x, this.startY = this.y, this.absStartX = this.x, this.absStartY = this.y, this.pointX = i.pageX, this.pointY = i.pageY, this._execEvent("beforeScrollStart")
                    }
                }, _move: function (t) {
                    if (this.enabled && a.eventType[t.type] === this.initiated) {
                        this.options.preventDefault && t.preventDefault();
                        var e, i, n, o, s = t.touches ? t.touches[0] : t, r = s.pageX - this.pointX,
                            l = s.pageY - this.pointY, c = a.getTime();
                        if (this.pointX = s.pageX, this.pointY = s.pageY, this.distX += r, this.distY += l, n = Math.abs(this.distX), o = Math.abs(this.distY), !(c - this.endTime > 300 && 10 > n && 10 > o)) {
                            if (this.directionLocked || this.options.freeScroll || (this.directionLocked = n > o + this.options.directionLockThreshold ? "h" : o >= n + this.options.directionLockThreshold ? "v" : "n"), "h" == this.directionLocked) {
                                if ("vertical" == this.options.eventPassthrough) t.preventDefault(); else if ("horizontal" == this.options.eventPassthrough) return void (this.initiated = !1);
                                l = 0
                            } else if ("v" == this.directionLocked) {
                                if ("horizontal" == this.options.eventPassthrough) t.preventDefault(); else if ("vertical" == this.options.eventPassthrough) return void (this.initiated = !1);
                                r = 0
                            }
                            r = this.hasHorizontalScroll ? r : 0, l = this.hasVerticalScroll ? l : 0, e = this.x + r, i = this.y + l, (e > 0 || e < this.maxScrollX) && (e = this.options.bounce ? this.x + r / 3 : e > 0 ? 0 : this.maxScrollX), (i > 0 || i < this.maxScrollY) && (i = this.options.bounce ? this.y + l / 3 : i > 0 ? 0 : this.maxScrollY), this.directionX = r > 0 ? -1 : 0 > r ? 1 : 0, this.directionY = l > 0 ? -1 : 0 > l ? 1 : 0, this.moved || this._execEvent("scrollStart"), this.moved = !0, this._translate(e, i), c - this.startTime > 300 && (this.startTime = c, this.startX = this.x, this.startY = this.y)
                        }
                    }
                }, _end: function (t) {
                    if (this.enabled && a.eventType[t.type] === this.initiated) {
                        this.options.preventDefault && !a.preventDefaultException(t.target, this.options.preventDefaultException) && t.preventDefault();
                        var e, i, n = (t.changedTouches ? t.changedTouches[0] : t, a.getTime() - this.startTime),
                            o = Math.round(this.x), s = Math.round(this.y), r = Math.abs(o - this.startX),
                            l = Math.abs(s - this.startY), c = 0, u = "";
                        if (this.isInTransition = 0, this.initiated = 0, this.endTime = a.getTime(), !this.resetPosition(this.options.bounceTime)) return this.scrollTo(o, s), this.moved ? this._events.flick && 200 > n && 100 > r && 100 > l ? void this._execEvent("flick") : (this.options.momentum && 300 > n && (e = this.hasHorizontalScroll ? a.momentum(this.x, this.startX, n, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : {
                            destination: o,
                            duration: 0
                        }, i = this.hasVerticalScroll ? a.momentum(this.y, this.startY, n, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : {
                            destination: s,
                            duration: 0
                        }, o = e.destination, s = i.destination, c = Math.max(e.duration, i.duration), this.isInTransition = 1), o != this.x || s != this.y ? ((o > 0 || o < this.maxScrollX || s > 0 || s < this.maxScrollY) && (u = a.ease.quadratic), void this.scrollTo(o, s, c, u)) : void this._execEvent("scrollEnd")) : (this.options.tap && a.tap(t, this.options.tap), this.options.click && a.click(t), void this._execEvent("scrollCancel"))
                    }
                }, _resize: function () {
                    var t = this;
                    clearTimeout(this.resizeTimeout), this.resizeTimeout = setTimeout(function () {
                        t.refresh()
                    }, this.options.resizePolling)
                }, resetPosition: function (t) {
                    var e = this.x, i = this.y;
                    return t = t || 0, !this.hasHorizontalScroll || this.x > 0 ? e = 0 : this.x < this.maxScrollX && (e = this.maxScrollX), !this.hasVerticalScroll || this.y > 0 ? i = 0 : this.y < this.maxScrollY && (i = this.maxScrollY), e == this.x && i == this.y ? !1 : (this.scrollTo(e, i, t, this.options.bounceEasing), !0)
                }, disable: function () {
                    this.enabled = !1
                }, enable: function () {
                    this.enabled = !0
                }, refresh: function () {
                    this.wrapper.offsetHeight;
                    this.wrapperWidth = this.wrapper.clientWidth, this.wrapperHeight = this.wrapper.clientHeight, this.scrollerWidth = this.scroller.offsetWidth, this.scrollerHeight = this.scroller.offsetHeight, this.maxScrollX = this.wrapperWidth - this.scrollerWidth, this.maxScrollY = this.wrapperHeight - this.scrollerHeight, this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0, this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0, this.hasHorizontalScroll || (this.maxScrollX = 0, this.scrollerWidth = this.wrapperWidth), this.hasVerticalScroll || (this.maxScrollY = 0, this.scrollerHeight = this.wrapperHeight), this.endTime = 0, this.directionX = 0, this.directionY = 0, this.wrapperOffset = a.offset(this.wrapper), this._execEvent("refresh"), this.resetPosition()
                }, on: function (t, e) {
                    this._events[t] || (this._events[t] = []), this._events[t].push(e)
                }, off: function (t, e) {
                    if (this._events[t]) {
                        var i = this._events[t].indexOf(e);
                        i > -1 && this._events[t].splice(i, 1)
                    }
                }, _execEvent: function (t) {
                    if (this._events[t]) {
                        var e = 0, i = this._events[t].length;
                        if (i) for (; i > e; e++) this._events[t][e].apply(this, [].slice.call(arguments, 1))
                    }
                }, scrollBy: function (t, e, i, n) {
                    t = this.x + t, e = this.y + e, i = i || 0, this.scrollTo(t, e, i, n)
                }, scrollTo: function (t, e, i, n) {
                    n = n || a.ease.circular, this.isInTransition = this.options.useTransition && i > 0, !i || this.options.useTransition && n.style ? (this._transitionTimingFunction(n.style), this._transitionTime(i), this._translate(t, e)) : this._animate(t, e, i, n.fn)
                }, scrollToElement: function (t, e, i, n, o) {
                    if (t = t.nodeType ? t : this.scroller.querySelector(t)) {
                        var s = a.offset(t);
                        s.left -= this.wrapperOffset.left, s.top -= this.wrapperOffset.top, i === !0 && (i = Math.round(t.offsetWidth / 2 - this.wrapper.offsetWidth / 2)), n === !0 && (n = Math.round(t.offsetHeight / 2 - this.wrapper.offsetHeight / 2)), s.left -= i || 0, s.top -= n || 0, s.left = s.left > 0 ? 0 : s.left < this.maxScrollX ? this.maxScrollX : s.left, s.top = s.top > 0 ? 0 : s.top < this.maxScrollY ? this.maxScrollY : s.top, e = void 0 === e || null === e || "auto" === e ? Math.max(Math.abs(this.x - s.left), Math.abs(this.y - s.top)) : e, this.scrollTo(s.left, s.top, e, o)
                    }
                }, _transitionTime: function (t) {
                    t = t || 0, this.scrollerStyle[a.style.transitionDuration] = t + "ms", !t && a.isBadAndroid && (this.scrollerStyle[a.style.transitionDuration] = "0.001s")
                }, _transitionTimingFunction: function (t) {
                    this.scrollerStyle[a.style.transitionTimingFunction] = t
                }, _translate: function (t, e) {
                    this.options.useTransform ? this.scrollerStyle[a.style.transform] = "translate(" + t + "px," + e + "px)" + this.translateZ : (t = Math.round(t), e = Math.round(e), this.scrollerStyle.left = t + "px", this.scrollerStyle.top = e + "px"), this.x = t, this.y = e
                }, _initEvents: function (t) {
                    var e = t ? a.removeEvent : a.addEvent, i = this.options.bindToWrapper ? this.wrapper : window;
                    e(window, "orientationchange", this), e(window, "resize", this), this.options.click && e(this.wrapper, "click", this, !0), this.options.disableMouse || (e(this.wrapper, "mousedown", this), e(i, "mousemove", this), e(i, "mousecancel", this), e(i, "mouseup", this)), a.hasPointer && !this.options.disablePointer && (e(this.wrapper, a.prefixPointerEvent("pointerdown"), this), e(i, a.prefixPointerEvent("pointermove"), this), e(i, a.prefixPointerEvent("pointercancel"), this), e(i, a.prefixPointerEvent("pointerup"), this)), a.hasTouch && !this.options.disableTouch && (e(this.wrapper, "touchstart", this), e(i, "touchmove", this), e(i, "touchcancel", this), e(i, "touchend", this)), e(this.scroller, "transitionend", this), e(this.scroller, "webkitTransitionEnd", this), e(this.scroller, "oTransitionEnd", this), e(this.scroller, "MSTransitionEnd", this)
                }, getComputedPosition: function () {
                    var t, e, i = window.getComputedStyle(this.scroller, null);
                    return this.options.useTransform ? (i = i[a.style.transform].split(")")[0].split(", "), t = +(i[12] || i[4]), e = +(i[13] || i[5])) : (t = +i.left.replace(/[^-\d.]/g, ""), e = +i.top.replace(/[^-\d.]/g, "")), {
                        x: t,
                        y: e
                    }
                }, _animate: function (t, e, i, n) {
                    function o() {
                        var h, p, f, m = a.getTime();
                        return m >= d ? (r.isAnimating = !1, r._translate(t, e), void (r.resetPosition(r.options.bounceTime) || r._execEvent("scrollEnd"))) : (m = (m - u) / i, f = n(m), h = (t - l) * f + l, p = (e - c) * f + c, r._translate(h, p), void (r.isAnimating && s(o)))
                    }

                    var r = this, l = this.x, c = this.y, u = a.getTime(), d = u + i;
                    this.isAnimating = !0, o()
                }, handleEvent: function (t) {
                    switch (t.type) {
                        case"touchstart":
                        case"pointerdown":
                        case"MSPointerDown":
                        case"mousedown":
                            this._start(t);
                            break;
                        case"touchmove":
                        case"pointermove":
                        case"MSPointerMove":
                        case"mousemove":
                            this._move(t);
                            break;
                        case"touchend":
                        case"pointerup":
                        case"MSPointerUp":
                        case"mouseup":
                        case"touchcancel":
                        case"pointercancel":
                        case"MSPointerCancel":
                        case"mousecancel":
                            this._end(t);
                            break;
                        case"orientationchange":
                        case"resize":
                            this._resize();
                            break;
                        case"transitionend":
                        case"webkitTransitionEnd":
                        case"oTransitionEnd":
                        case"MSTransitionEnd":
                            this._transitionEnd(t);
                            break;
                        case"wheel":
                        case"DOMMouseScroll":
                        case"mousewheel":
                            this._wheel(t);
                            break;
                        case"keydown":
                            this._key(t);
                            break;
                        case"click":
                            t._constructed || (t.preventDefault(), t.stopPropagation())
                    }
                }
            }, n.utils = a, o.AMUI.iScroll = n, e.exports = n
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 32: [function (t, e) {
        (function (i) {
            "use strict";

            function n(t, e) {
                return this.each(function () {
                    var i = o(this), n = i.data("amui.modal"), s = o.extend({}, c.DEFAULTS, "object" == typeof t && t);
                    n || i.data("amui.modal", n = new c(this, s)), "string" == typeof t ? n[t] && n[t](e) : n.toggle(t && t.relatedTarget || void 0)
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = t("./core"), a = t("./ui.dimmer"), r = o(document), l = s.support.transition, c = function (t, e) {
                    this.options = o.extend({}, c.DEFAULTS, e || {}), this.$element = o(t), this.$dialog = this.$element.find(".am-modal-dialog"), this.$element.attr("id") || this.$element.attr("id", s.utils.generateGUID("am-modal")), this.isPopup = this.$element.hasClass("am-popup"), this.isActions = this.$element.hasClass("am-modal-actions"), this.isPrompt = this.$element.hasClass("am-modal-prompt"), this.isLoading = this.$element.hasClass("am-modal-loading"), this.active = this.transitioning = this.relatedTarget = null, this.events()
                };
            c.DEFAULTS = {
                className: {active: "am-modal-active", out: "am-modal-out"},
                selector: {modal: ".am-modal", active: ".am-modal-active"},
                closeViaDimmer: !0,
                cancelable: !0,
                onConfirm: function () {
                },
                onCancel: function () {
                },
                height: void 0,
                width: void 0,
                duration: 300,
                transitionEnd: l && l.end + ".modal.amui"
            }, c.prototype.toggle = function (t) {
                return this.active ? this.close() : this.open(t)
            }, c.prototype.open = function (t) {
                var e = this.$element, i = this.options, n = this.isPopup, s = i.width, r = i.height, c = {};
                if (!this.active && this.$element.length) {
                    t && (this.relatedTarget = t), this.transitioning && (clearTimeout(e.transitionEndTimmer), e.transitionEndTimmer = null, e.trigger(i.transitionEnd).off(i.transitionEnd)), n && this.$element.show(), this.active = !0, e.trigger(o.Event("open.modal.amui", {relatedTarget: t})), a.open(e), e.show().redraw(), n || this.isActions || (s && (s = parseInt(s, 10), c.width = s + "px", c.marginLeft = -parseInt(s / 2) + "px"), r ? (r = parseInt(r, 10), c.marginTop = -parseInt(r / 2) + "px", this.$dialog.css({height: r + "px"})) : c.marginTop = -parseInt(e.height() / 2, 10) + "px", e.css(c)), e.removeClass(i.className.out).addClass(i.className.active), this.transitioning = 1;
                    var u = function () {
                        e.trigger(o.Event("opened.modal.amui", {relatedTarget: t})), this.transitioning = 0, this.isPrompt && this.$dialog.find("input").eq(0).focus()
                    };
                    return l ? void e.one(i.transitionEnd, o.proxy(u, this)).emulateTransitionEnd(i.duration) : u.call(this)
                }
            }, c.prototype.close = function (t) {
                if (this.active) {
                    var e = this.$element, i = this.options, n = this.isPopup;
                    this.transitioning && (clearTimeout(e.transitionEndTimmer), e.transitionEndTimmer = null, e.trigger(i.transitionEnd).off(i.transitionEnd), a.close(e, !0)), this.$element.trigger(o.Event("close.modal.amui", {relatedTarget: t})), this.transitioning = 1;
                    var s = function () {
                        e.trigger("closed.modal.amui"), n && e.removeClass(i.className.out), e.hide(), this.transitioning = 0, a.close(e, !1), this.active = !1
                    };
                    return e.removeClass(i.className.active).addClass(i.className.out), l ? void e.one(i.transitionEnd, o.proxy(s, this)).emulateTransitionEnd(i.duration) : s.call(this)
                }
            }, c.prototype.events = function () {
                var t = this, e = this.$element, i = e.find(".am-modal-prompt-input"), n = function () {
                    var t = [];
                    return i.each(function () {
                        t.push(o(this).val())
                    }), 0 === t.length ? void 0 : 1 === t.length ? t[0] : t
                };
                this.options.cancelable && e.on("keyup.modal.amui", function (i) {
                    t.active && 27 === i.which && (e.trigger("cancel.modal.amui"), t.close())
                }), this.options.closeViaDimmer && !this.isLoading && a.$element.on("click.dimmer.modal.amui", function () {
                    t.close()
                }), e.find("[data-am-modal-close], .am-modal-btn").on("click.close.modal.amui", function (e) {
                    e.preventDefault(), t.close()
                }), e.find("[data-am-modal-confirm]").on("click.confirm.modal.amui", function () {
                    e.trigger(o.Event("confirm.modal.amui", {trigger: this}))
                }), e.find("[data-am-modal-cancel]").on("click.cancel.modal.amui", function () {
                    e.trigger(o.Event("cancel.modal.amui", {trigger: this}))
                }), e.on("confirm.modal.amui", function (e) {
                    e.data = n(), t.options.onConfirm.call(t, e)
                }).on("cancel.modal.amui", function (e) {
                    e.data = n(), t.options.onCancel.call(t, e)
                })
            }, o.fn.modal = n, r.on("click.modal.amui.data-api", "[data-am-modal]", function () {
                var t = o(this), e = s.utils.parseOptions(t.attr("data-am-modal")),
                    i = o(e.target || this.href && this.href.replace(/.*(?=#[^\s]+$)/, "")),
                    a = i.data("amui.modal") ? "toggle" : e;
                n.call(i, a, this)
            }), o.AMUI.modal = c, e.exports = c
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4, "./ui.dimmer": 28}], 33: [function (t, e) {
        (function (i) {
            "use strict";

            function n(t, e) {
                return this.each(function () {
                    var i = s(this), n = i.data("amui.offcanvas"), o = s.extend({}, "object" == typeof t && t);
                    n || (i.data("amui.offcanvas", n = new c(this, o)), (!t || "object" == typeof t) && n.open(e)), "string" == typeof t && n[t] && n[t](e)
                })
            }

            var o, s = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                a = t("./core"), r = (t("./util.hammer"), s(window)), l = s(document), c = function (t, e) {
                    this.$element = s(t), this.options = s.extend({}, c.DEFAULTS, e), this.active = null, this.bindEvents()
                };
            c.DEFAULTS = {duration: 300, effect: "overlay"}, c.prototype.open = function () {
                var t = this, e = this.$element;
                if (e.length && !e.hasClass("am-active")) {
                    var i = this.options.effect, n = s("html"), a = s("body"), l = e.find(".am-offcanvas-bar").first(),
                        c = l.hasClass("am-offcanvas-bar-flip") ? -1 : 1;
                    l.addClass("am-offcanvas-bar-" + i), o = {
                        x: window.scrollX,
                        y: window.scrollY
                    }, e.addClass("am-active"), a.css({
                        width: window.innerWidth,
                        height: r.height()
                    }).addClass("am-offcanvas-page"), "overlay" !== i && a.css({"margin-left": l.outerWidth() * c}).width(), n.css("margin-top", -1 * o.y), setTimeout(function () {
                        l.addClass("am-offcanvas-bar-active").width()
                    }, 0), e.trigger("open.offcanvas.amui"), this.active = 1, e.on("click.offcanvas.amui", function (e) {
                        var i = s(e.target);
                        i.hasClass("am-offcanvas-bar") || i.parents(".am-offcanvas-bar").first().length || (e.stopImmediatePropagation(), t.close())
                    }), n.on("keydown.offcanvas.amui", function (e) {
                        27 === e.keyCode && t.close()
                    })
                }
            }, c.prototype.close = function () {
                function t() {
                    n.removeClass("am-offcanvas-page").css({
                        width: "",
                        height: "",
                        "margin-left": "",
                        "margin-right": ""
                    }), r.removeClass("am-active"), l.removeClass("am-offcanvas-bar-active"), i.css("margin-top", ""), window.scrollTo(o.x, o.y), r.trigger("closed.offcanvas.amui"), e.active = 0
                }

                var e = this, i = s("html"), n = s("body"), r = this.$element, l = r.find(".am-offcanvas-bar").first();
                r.length && this.active && r.hasClass("am-active") && (r.trigger("close.offcanvas.amui"), a.support.transition ? (setTimeout(function () {
                    l.removeClass("am-offcanvas-bar-active")
                }, 0), n.css("margin-left", "").one(a.support.transition.end, function () {
                    t()
                }).emulateTransitionEnd(this.options.duration)) : t(), r.off("click.offcanvas.amui"), i.off(".offcanvas.amui"))
            }, c.prototype.bindEvents = function () {
                var t = this;
                return l.on("click.offcanvas.amui", '[data-am-dismiss="offcanvas"]', function (e) {
                    e.preventDefault(), t.close()
                }), r.on("resize.offcanvas.amui orientationchange.offcanvas.amui", function () {
                    t.active && t.close()
                }), this.$element.hammer().on("swipeleft swipeleft", function (e) {
                    e.preventDefault(), t.close()
                }), this
            }, s.fn.offCanvas = n, l.on("click.offcanvas.amui", "[data-am-offcanvas]", function (t) {
                t.preventDefault();
                var e = s(this), i = a.utils.parseOptions(e.data("amOffcanvas")),
                    o = s(i.target || this.href && this.href.replace(/.*(?=#[^\s]+$)/, "")),
                    r = o.data("amui.offcanvas") ? "open" : i;
                n.call(o, r, this)
            }), s.AMUI.offcanvas = c, e.exports = c
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4, "./util.hammer": 51}], 34: [function (t, e) {
        (function (i) {
            "use strict";
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                o = (t("./core"), function (t) {
                    var e = function (e, i) {
                        this.el = t(e), this.zoomFactor = 1, this.lastScale = 1, this.offset = {
                            x: 0,
                            y: 0
                        }, this.options = t.extend({}, this.defaults, i), this.setupMarkup(), this.bindEvents(), this.update(), this.enable()
                    }, i = function (t, e) {
                        return t + e
                    }, n = function (t, e) {
                        return t > e - .01 && e + .01 > t
                    };
                    e.prototype = {
                        defaults: {
                            tapZoomFactor: 2,
                            zoomOutFactor: 1.3,
                            animationDuration: 300,
                            animationInterval: 5,
                            maxZoom: 5,
                            minZoom: .5,
                            lockDragAxis: !1,
                            use2d: !1,
                            zoomStartEventName: "pz_zoomstart",
                            zoomEndEventName: "pz_zoomend",
                            dragStartEventName: "pz_dragstart",
                            dragEndEventName: "pz_dragend",
                            doubleTapEventName: "pz_doubletap"
                        }, handleDragStart: function (t) {
                            this.el.trigger(this.options.dragStartEventName), this.stopAnimation(), this.lastDragPosition = !1, this.hasInteraction = !0, this.handleDrag(t)
                        }, handleDrag: function (t) {
                            if (this.zoomFactor > 1) {
                                var e = this.getTouches(t)[0];
                                this.drag(e, this.lastDragPosition), this.offset = this.sanitizeOffset(this.offset), this.lastDragPosition = e
                            }
                        }, handleDragEnd: function () {
                            this.el.trigger(this.options.dragEndEventName), this.end()
                        }, handleZoomStart: function () {
                            this.el.trigger(this.options.zoomStartEventName), this.stopAnimation(), this.lastScale = 1, this.nthZoom = 0, this.lastZoomCenter = !1, this.hasInteraction = !0
                        }, handleZoom: function (t, e) {
                            var i = this.getTouchCenter(this.getTouches(t)), n = e / this.lastScale;
                            this.lastScale = e, this.nthZoom += 1, this.nthZoom > 3 && (this.scale(n, i), this.drag(i, this.lastZoomCenter)), this.lastZoomCenter = i
                        }, handleZoomEnd: function () {
                            this.el.trigger(this.options.zoomEndEventName), this.end()
                        }, handleDoubleTap: function (t) {
                            var e = this.getTouches(t)[0], i = this.zoomFactor > 1 ? 1 : this.options.tapZoomFactor,
                                n = this.zoomFactor, o = function (t) {
                                    this.scaleTo(n + t * (i - n), e)
                                }.bind(this);
                            this.hasInteraction || (n > i && (e = this.getCurrentZoomCenter()), this.animate(this.options.animationDuration, this.options.animationInterval, o, this.swing), this.el.trigger(this.options.doubleTapEventName))
                        }, sanitizeOffset: function (t) {
                            var e = (this.zoomFactor - 1) * this.getContainerX(),
                                i = (this.zoomFactor - 1) * this.getContainerY(), n = Math.max(e, 0),
                                o = Math.max(i, 0), s = Math.min(e, 0), a = Math.min(i, 0);
                            return {x: Math.min(Math.max(t.x, s), n), y: Math.min(Math.max(t.y, a), o)}
                        }, scaleTo: function (t, e) {
                            this.scale(t / this.zoomFactor, e)
                        }, scale: function (t, e) {
                            t = this.scaleZoomFactor(t), this.addOffset({
                                x: (t - 1) * (e.x + this.offset.x),
                                y: (t - 1) * (e.y + this.offset.y)
                            })
                        }, scaleZoomFactor: function (t) {
                            var e = this.zoomFactor;
                            return this.zoomFactor *= t, this.zoomFactor = Math.min(this.options.maxZoom, Math.max(this.zoomFactor, this.options.minZoom)), this.zoomFactor / e
                        }, drag: function (t, e) {
                            e && this.addOffset(this.options.lockDragAxis ? Math.abs(t.x - e.x) > Math.abs(t.y - e.y) ? {
                                x: -(t.x - e.x),
                                y: 0
                            } : {y: -(t.y - e.y), x: 0} : {y: -(t.y - e.y), x: -(t.x - e.x)})
                        }, getTouchCenter: function (t) {
                            return this.getVectorAvg(t)
                        }, getVectorAvg: function (t) {
                            return {
                                x: t.map(function (t) {
                                    return t.x
                                }).reduce(i) / t.length, y: t.map(function (t) {
                                    return t.y
                                }).reduce(i) / t.length
                            }
                        }, addOffset: function (t) {
                            this.offset = {x: this.offset.x + t.x, y: this.offset.y + t.y}
                        }, sanitize: function () {
                            this.zoomFactor < this.options.zoomOutFactor ? this.zoomOutAnimation() : this.isInsaneOffset(this.offset) && this.sanitizeOffsetAnimation()
                        }, isInsaneOffset: function (t) {
                            var e = this.sanitizeOffset(t);
                            return e.x !== t.x || e.y !== t.y
                        }, sanitizeOffsetAnimation: function () {
                            var t = this.sanitizeOffset(this.offset), e = {x: this.offset.x, y: this.offset.y},
                                i = function (i) {
                                    this.offset.x = e.x + i * (t.x - e.x), this.offset.y = e.y + i * (t.y - e.y), this.update()
                                }.bind(this);
                            this.animate(this.options.animationDuration, this.options.animationInterval, i, this.swing)
                        }, zoomOutAnimation: function () {
                            var t = this.zoomFactor, e = 1, i = this.getCurrentZoomCenter(), n = function (n) {
                                this.scaleTo(t + n * (e - t), i)
                            }.bind(this);
                            this.animate(this.options.animationDuration, this.options.animationInterval, n, this.swing)
                        }, updateAspectRatio: function () {
                            this.setContainerY()
                        }, getInitialZoomFactor: function () {
                            return this.container[0].offsetWidth / this.el[0].offsetWidth
                        }, getAspectRatio: function () {
                            return this.el[0].offsetWidth / this.el[0].offsetHeight
                        }, getCurrentZoomCenter: function () {
                            var t = this.container[0].offsetWidth * this.zoomFactor, e = this.offset.x,
                                i = t - e - this.container[0].offsetWidth, n = e / i,
                                o = n * this.container[0].offsetWidth / (n + 1),
                                s = this.container[0].offsetHeight * this.zoomFactor, a = this.offset.y,
                                r = s - a - this.container[0].offsetHeight, l = a / r,
                                c = l * this.container[0].offsetHeight / (l + 1);
                            return 0 === i && (o = this.container[0].offsetWidth), 0 === r && (c = this.container[0].offsetHeight), {
                                x: o,
                                y: c
                            }
                        }, canDrag: function () {
                            return !n(this.zoomFactor, 1)
                        }, getTouches: function (t) {
                            var e = this.container.offset();
                            return Array.prototype.slice.call(t.touches).map(function (t) {
                                return {x: t.pageX - e.left, y: t.pageY - e.top}
                            })
                        }, animate: function (t, e, i, n, o) {
                            var s = (new Date).getTime(), a = function () {
                                if (this.inAnimation) {
                                    var r = (new Date).getTime() - s, l = r / t;
                                    r >= t ? (i(1), o && o(), this.update(), this.stopAnimation(), this.update()) : (n && (l = n(l)), i(l), this.update(), setTimeout(a, e))
                                }
                            }.bind(this);
                            this.inAnimation = !0, a()
                        }, stopAnimation: function () {
                            this.inAnimation = !1
                        }, swing: function (t) {
                            return -Math.cos(t * Math.PI) / 2 + .5
                        }, getContainerX: function () {
                            return window.innerWidth
                        }, getContainerY: function () {
                            return window.innerHeight
                        }, setContainerY: function () {
                            var t = window.innerHeight;
                            return this.el.css({height: t}), this.container.height(t)
                        }, setupMarkup: function () {
                            this.container = t('<div class="pinch-zoom-container"></div>'), this.el.before(this.container), this.container.append(this.el), this.container.css({
                                overflow: "hidden",
                                position: "relative"
                            }), this.el.css({
                                "-webkit-transform-origin": "0% 0%",
                                "-moz-transform-origin": "0% 0%",
                                "-ms-transform-origin": "0% 0%",
                                "-o-transform-origin": "0% 0%",
                                "transform-origin": "0% 0%",
                                position: "absolute"
                            })
                        }, end: function () {
                            this.hasInteraction = !1, this.sanitize(), this.update()
                        }, bindEvents: function () {
                            o(this.container.get(0), this), t(window).on("resize", this.update.bind(this)), t(this.el).find("img").on("load", this.update.bind(this))
                        }, update: function () {
                            this.updatePlaned || (this.updatePlaned = !0, setTimeout(function () {
                                this.updatePlaned = !1, this.updateAspectRatio();
                                var t = this.getInitialZoomFactor() * this.zoomFactor, e = -this.offset.x / t,
                                    i = -this.offset.y / t,
                                    n = "scale3d(" + t + ", " + t + ",1) translate3d(" + e + "px," + i + "px,0px)",
                                    o = "scale(" + t + ", " + t + ") translate(" + e + "px," + i + "px)",
                                    s = function () {
                                        this.clone && (this.clone.remove(), delete this.clone)
                                    }.bind(this);
                                !this.options.use2d || this.hasInteraction || this.inAnimation ? (this.is3d = !0, s(), this.el.css({
                                    "-webkit-transform": n,
                                    "-o-transform": o,
                                    "-ms-transform": o,
                                    "-moz-transform": o,
                                    transform: n
                                })) : (this.is3d && (this.clone = this.el.clone(), this.clone.css("pointer-events", "none"), this.clone.appendTo(this.container), setTimeout(s, 200)), this.el.css({
                                    "-webkit-transform": o,
                                    "-o-transform": o,
                                    "-ms-transform": o,
                                    "-moz-transform": o,
                                    transform: o
                                }), this.is3d = !1)
                            }.bind(this), 0))
                        }, enable: function () {
                            this.enabled = !0
                        }, disable: function () {
                            this.enabled = !1
                        }
                    };
                    var o = function (t, e) {
                        var i = null, n = 0, o = null, s = null, a = function (t, n) {
                            if (i !== t) {
                                if (i && !t) switch (i) {
                                    case"zoom":
                                        e.handleZoomEnd(n);
                                        break;
                                    case"drag":
                                        e.handleDragEnd(n)
                                }
                                switch (t) {
                                    case"zoom":
                                        e.handleZoomStart(n);
                                        break;
                                    case"drag":
                                        e.handleDragStart(n)
                                }
                            }
                            i = t
                        }, r = function (t) {
                            2 === n ? a("zoom") : 1 === n && e.canDrag() ? a("drag", t) : a(null, t)
                        }, l = function (t) {
                            return Array.prototype.slice.call(t).map(function (t) {
                                return {x: t.pageX, y: t.pageY}
                            })
                        }, c = function (t, e) {
                            var i, n;
                            return i = t.x - e.x, n = t.y - e.y, Math.sqrt(i * i + n * n)
                        }, u = function (t, e) {
                            var i = c(t[0], t[1]), n = c(e[0], e[1]);
                            return n / i
                        }, d = function (t) {
                            t.stopPropagation(), t.preventDefault()
                        }, h = function (t) {
                            var s = (new Date).getTime();
                            if (n > 1 && (o = null), 300 > s - o) switch (d(t), e.handleDoubleTap(t), i) {
                                case"zoom":
                                    e.handleZoomEnd(t);
                                    break;
                                case"drag":
                                    e.handleDragEnd(t)
                            }
                            1 === n && (o = s)
                        }, p = !0;
                        t.addEventListener("touchstart", function (t) {
                            e.enabled && (p = !0, n = t.touches.length, h(t))
                        }), t.addEventListener("touchmove", function (t) {
                            if (e.enabled) {
                                if (p) r(t), i && d(t), s = l(t.touches); else {
                                    switch (i) {
                                        case"zoom":
                                            e.handleZoom(t, u(s, l(t.touches)));
                                            break;
                                        case"drag":
                                            e.handleDrag(t)
                                    }
                                    i && (d(t), e.update())
                                }
                                p = !1
                            }
                        }), t.addEventListener("touchend", function (t) {
                            e.enabled && (n = t.touches.length, r(t))
                        })
                    };
                    return e
                });
            n.AMUI.pichzoom = o(n), e.exports = o(n)
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 35: [function (t, e) {
        (function (i) {
            "use strict";

            function n(t) {
                return this.each(function () {
                    var e = o(this), i = e.data("amui.popover"),
                        n = o.extend({}, s.utils.parseOptions(e.attr("data-am-popover")), "object" == typeof t && t);
                    i || e.data("amui.popover", i = new r(this, n)), "string" == typeof t && i[t] && i[t]()
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = t("./core"), a = o(window), r = function (t, e) {
                    this.options = o.extend({}, r.DEFAULTS, e || {}), this.$element = o(t), this.active = null, this.$popover = this.options.target && o(this.options.target) || null, this.init(), this.events()
                };
            r.DEFAULTS = {
                theme: void 0,
                trigger: "click",
                content: "",
                open: !1,
                target: void 0,
                tpl: '<div class="am-popover"><div class="am-popover-inner"></div><div class="am-popover-caret"></div></div>'
            }, r.prototype.init = function () {
                function t() {
                    i.sizePopover()
                }

                var e, i = this, n = this.$element;
                this.options.target || (this.$popover = this.getPopover(), this.setContent()), e = this.$popover, e.appendTo(o("body")), this.sizePopover(), n.on("open.popover.amui", function () {
                    o(window).on("resize.popover.amui", s.utils.debounce(t, 50))
                }), n.on("close.popover.amui", function () {
                    o(window).off("resize.popover.amui", t)
                }), this.options.open && this.open()
            }, r.prototype.sizePopover = function () {
                var t = this.$element, e = this.$popover;
                if (e && e.length) {
                    var i = e.outerWidth(), n = e.outerHeight(), o = e.find(".am-popover-caret"),
                        s = o.outerWidth() / 2 || 8, r = n + 8, l = t.outerWidth(), c = t.outerHeight(), u = t.offset(),
                        d = t[0].getBoundingClientRect(), h = a.height(), p = a.width(), f = 0, m = 0, v = 0, g = 2,
                        w = "top";
                    e.css({
                        left: "",
                        top: ""
                    }).removeClass("am-popover-left am-popover-right am-popover-top am-popover-bottom"), o.css({
                        left: "",
                        top: ""
                    }), r - g < d.top + g ? f = u.top - r - g : r < h - d.top - d.height ? (w = "bottom", f = u.top + c + s + g) : (w = "middle", f = c / 2 + u.top - n / 2), "top" === w || "bottom" === w ? (m = l / 2 + u.left - i / 2, v = m, 5 > m && (m = 5), m + i > p && (m = p - i - 20), "top" === w && e.addClass("am-popover-top"), "bottom" === w && e.addClass("am-popover-bottom"), v -= m, o.css({left: i / 2 - s + v + "px"})) : "middle" === w && (m = u.left - i - s, e.addClass("am-popover-left"), 5 > m && (m = u.left + l + s, e.removeClass("am-popover-left").addClass("am-popover-right")), m + i > p && (m = p - i - 5, e.removeClass("am-popover-left").addClass("am-popover-right")), o.css({top: n / 2 - s / 2 + "px"})), e.css({
                        top: f + "px",
                        left: m + "px"
                    })
                }
            }, r.prototype.toggle = function () {
                return this[this.active ? "close" : "open"]()
            }, r.prototype.open = function () {
                var t = this.$popover;
                this.$element.trigger("open.popover.amui"), this.sizePopover(), t.show().addClass("am-active"), this.active = !0
            }, r.prototype.close = function () {
                var t = this.$popover;
                this.$element.trigger("close.popover.amui"), t.removeClass("am-active").trigger("closed.popover.amui").hide(), this.active = !1
            }, r.prototype.getPopover = function () {
                var t = s.utils.generateGUID("am-popover"), e = [];
                return this.options.theme && o.each(this.options.theme.split(","), function (t, i) {
                    e.push("am-popover-" + o.trim(i))
                }), o(this.options.tpl).attr("id", t).addClass(e.join(" "))
            }, r.prototype.setContent = function (t) {
                t = t || this.options.content, this.$popover && this.$popover.find(".am-popover-inner").empty().html(t)
            }, r.prototype.events = function () {
                for (var t = "popover.amui", e = this.options.trigger.split(" "), i = e.length; i--;) {
                    var n = e[i];
                    if ("click" === n) this.$element.on("click." + t, o.proxy(this.toggle, this)); else {
                        var s = "hover" == n ? "mouseenter" : "focusin", a = "hover" == n ? "mouseleave" : "focusout";
                        this.$element.on(s + "." + t, o.proxy(this.open, this)), this.$element.on(a + "." + t, o.proxy(this.close, this))
                    }
                }
            }, o.fn.popover = n, s.ready(function (t) {
                o("[data-am-popover]", t).popover()
            }), o.AMUI.popover = r, e.exports = r
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 36: [function (t, e) {
        (function (i) {
            "use strict";
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                o = (t("./core"), function () {
                    function t(t, e, i) {
                        return e > t ? e : t > i ? i : t
                    }

                    function e(t) {
                        return 100 * (-1 + t)
                    }

                    function i(t, i, n) {
                        var o;
                        return o = "translate3d" === a.positionUsing ? {transform: "translate3d(" + e(t) + "%,0,0)"} : "translate" === a.positionUsing ? {transform: "translate(" + e(t) + "%,0)"} : {"margin-left": e(t) + "%"}, o.transition = "all " + i + "ms " + n, o
                    }

                    var o = {}, s = n("html");
                    o.version = "0.1.6";
                    var a = o.settings = {
                        minimum: .08,
                        easing: "ease",
                        positionUsing: "",
                        speed: 200,
                        trickle: !0,
                        trickleRate: .02,
                        trickleSpeed: 800,
                        showSpinner: !0,
                        parent: "body",
                        barSelector: '[role="nprogress-bar"]',
                        spinnerSelector: '[role="nprogress-spinner"]',
                        template: '<div class="nprogress-bar" role="nprogress-bar"><div class="nprogress-peg"></div></div><div class="nprogress-spinner" role="nprogress-spinner"><div class="nprogress-spinner-icon"></div></div>'
                    };
                    o.configure = function (t) {
                        var e, i;
                        for (e in t) i = t[e], void 0 !== i && t.hasOwnProperty(e) && (a[e] = i);
                        return this
                    }, o.status = null, o.set = function (e) {
                        var n = o.isStarted();
                        e = t(e, a.minimum, 1), o.status = 1 === e ? null : e;
                        var s = o.render(!n), c = s.querySelector(a.barSelector), u = a.speed, d = a.easing;
                        return s.offsetWidth, r(function (t) {
                            "" === a.positionUsing && (a.positionUsing = o.getPositioningCSS()), l(c, i(e, u, d)), 1 === e ? (l(s, {
                                transition: "none",
                                opacity: 1
                            }), s.offsetWidth, setTimeout(function () {
                                l(s, {transition: "all " + u + "ms linear", opacity: 0}), setTimeout(function () {
                                    o.remove(), t()
                                }, u)
                            }, u)) : setTimeout(t, u)
                        }), this
                    }, o.isStarted = function () {
                        return "number" == typeof o.status
                    }, o.start = function () {
                        o.status || o.set(0);
                        var t = function () {
                            setTimeout(function () {
                                o.status && (o.trickle(), t())
                            }, a.trickleSpeed)
                        };
                        return a.trickle && t(), this
                    }, o.done = function (t) {
                        return t || o.status ? o.inc(.3 + .5 * Math.random()).set(1) : this
                    }, o.inc = function (e) {
                        var i = o.status;
                        return i ? ("number" != typeof e && (e = (1 - i) * t(Math.random() * i, .1, .95)), i = t(i + e, 0, .994), o.set(i)) : o.start()
                    }, o.trickle = function () {
                        return o.inc(Math.random() * a.trickleRate)
                    }, o.render = function (t) {
                        if (o.isRendered()) return document.getElementById("nprogress");
                        s.addClass("nprogress-busy");
                        var i = document.createElement("div");
                        i.id = "nprogress", i.innerHTML = a.template;
                        var r, c = i.querySelector(a.barSelector), u = t ? "-100" : e(o.status || 0),
                            d = document.querySelector(a.parent);
                        return l(c, {
                            transition: "all 0 linear",
                            transform: "translate3d(" + u + "%,0,0)"
                        }), a.showSpinner || (r = i.querySelector(a.spinnerSelector), r && n(r).remove()), d != document.body && n(d).addClass("nprogress-custom-parent"), d.appendChild(i), i
                    }, o.remove = function () {
                        s.removeClass("nprogress-busy"), n(a.parent).removeClass("nprogress-custom-parent");
                        var t = document.getElementById("nprogress");
                        t && n(t).remove()
                    }, o.isRendered = function () {
                        return !!document.getElementById("nprogress")
                    }, o.getPositioningCSS = function () {
                        var t = document.body.style,
                            e = "WebkitTransform" in t ? "Webkit" : "MozTransform" in t ? "Moz" : "msTransform" in t ? "ms" : "OTransform" in t ? "O" : "";
                        return e + "Perspective" in t ? "translate3d" : e + "Transform" in t ? "translate" : "margin"
                    };
                    var r = function () {
                        function t() {
                            var i = e.shift();
                            i && i(t)
                        }

                        var e = [];
                        return function (i) {
                            e.push(i), 1 == e.length && t()
                        }
                    }(), l = function () {
                        function t(t) {
                            return t.replace(/^-ms-/, "ms-").replace(/-([\da-z])/gi, function (t, e) {
                                return e.toUpperCase()
                            })
                        }

                        function e(t) {
                            var e = document.body.style;
                            if (t in e) return t;
                            for (var i, n = o.length, s = t.charAt(0).toUpperCase() + t.slice(1); n--;) if (i = o[n] + s, i in e) return i;
                            return t
                        }

                        function i(i) {
                            return i = t(i), s[i] || (s[i] = e(i))
                        }

                        function n(t, e, n) {
                            e = i(e), t.style[e] = n
                        }

                        var o = ["Webkit", "O", "Moz", "ms"], s = {};
                        return function (t, e) {
                            var i, o, s = arguments;
                            if (2 == s.length) for (i in e) o = e[i], void 0 !== o && e.hasOwnProperty(i) && n(t, i, o); else n(t, s[1], s[2])
                        }
                    }();
                    return o
                }());
            n.AMUI.progress = o, e.exports = o
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 37: [function (t, e) {
        (function (i) {
            "use strict";

            function n(t) {
                return this.each(function () {
                    var e = o(this), i = e.data("amui.pureview"),
                        n = o.extend({}, s.utils.parseOptions(e.data("amPureview")), "object" == typeof t && t);
                    i || e.data("amui.pureview", i = new u(this, n)), "string" == typeof t && i[t]()
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = t("./core"), a = t("./ui.pinchzoom"), r = t("./util.hammer"), l = s.support.animation,
                c = s.support.transition, u = function (t, e) {
                    this.$element = o(t), this.$body = o(document.body), this.options = o.extend({}, u.DEFAULTS, e), this.$pureview = o(this.options.tpl).attr("id", s.utils.generateGUID("am-pureview")), this.$slides = null, this.transitioning = null, this.scrollbarWidth = 0, this.init()
                };
            u.DEFAULTS = {
                tpl: '<div class="am-pureview am-pureview-bar-active"><ul class="am-pureview-slider"></ul><ul class="am-pureview-direction"><li class="am-pureview-prev"><a href=""></a></li><li class="am-pureview-next"><a href=""></a></li></ul><ol class="am-pureview-nav"></ol><div class="am-pureview-bar am-active"><span class="am-pureview-title"></span><div class="am-pureview-counter"><span class="am-pureview-current"></span> / <span class="am-pureview-total"></span></div></div><div class="am-pureview-actions am-active"><a href="javascript: void(0)" class="am-icon-chevron-left" data-am-close="pureview"></a></div></div>',
                className: {
                    prevSlide: "am-pureview-slide-prev",
                    nextSlide: "am-pureview-slide-next",
                    onlyOne: "am-pureview-only",
                    active: "am-active",
                    barActive: "am-pureview-bar-active",
                    activeBody: "am-pureview-active"
                },
                selector: {
                    slider: ".am-pureview-slider",
                    close: '[data-am-close="pureview"]',
                    total: ".am-pureview-total",
                    current: ".am-pureview-current",
                    title: ".am-pureview-title",
                    actions: ".am-pureview-actions",
                    bar: ".am-pureview-bar",
                    pinchZoom: ".am-pinch-zoom",
                    nav: ".am-pureview-nav"
                },
                shareBtn: !1,
                toggleToolbar: !0,
                target: "img",
                weChatImagePreview: !0
            }, u.prototype.init = function () {
                var t = this, e = this.options, i = this.$element, n = this.$pureview;
                this.refreshSlides(), o("body").append(n), this.$title = n.find(e.selector.title), this.$current = n.find(e.selector.current), this.$bar = n.find(e.selector.bar), this.$actions = n.find(e.selector.actions), e.shareBtn && this.$actions.append('<a href="javascript: void(0)" class="am-icon-share-square-o" data-am-toggle="share"></a>'), this.$element.on("click.pureview.amui", e.target, function (i) {
                    i.preventDefault();
                    var n = t.$images.index(this);
                    e.weChatImagePreview && window.WeixinJSBridge ? window.WeixinJSBridge.invoke("imagePreview", {
                        current: t.imgUrls[n],
                        urls: t.imgUrls
                    }) : t.open(n)
                }), n.find(".am-pureview-direction").on("click.direction.pureview.amui", "li", function (e) {
                    e.preventDefault(), o(this).is(".am-pureview-prev") ? t.prevSlide() : t.nextSlide()
                }), n.find(e.selector.nav).on("click.nav.pureview.amui", "li", function () {
                    var e = t.$navItems.index(o(this));
                    t.activate(t.$slides.eq(e))
                }), n.find(e.selector.close).on("click.close.pureview.amui", function (e) {
                    e.preventDefault(), t.close()
                }), this.$slider.hammer().on("swipeleft.pureview.amui", function (e) {
                    e.preventDefault(), t.nextSlide()
                }).on("swiperight.pureview.amui", function (e) {
                    e.preventDefault(), t.prevSlide()
                }).on("press.pureview.amui", function (i) {
                    i.preventDefault(), e.toggleToolbar && t.toggleToolBar()
                }), this.$slider.data("hammer").get("swipe").set({
                    direction: r.DIRECTION_HORIZONTAL,
                    velocity: .35
                }), i.DOMObserve({childList: !0, subtree: !0}, function () {
                }), i.on("changed.dom.amui", function (e) {
                    e.stopPropagation(), t.refreshSlides()
                }), o(document).on("keydown.pureview.amui", o.proxy(function (t) {
                    var e = t.keyCode;
                    37 == e ? this.prevSlide() : 39 == e ? this.nextSlide() : 27 == e && this.close()
                }, this))
            }, u.prototype.refreshSlides = function () {
                this.$images = this.$element.find(this.options.target);
                var t = this, e = this.options, i = this.$pureview, n = o([]), s = o([]), a = this.$images,
                    r = a.length;
                this.$slider = i.find(e.selector.slider), this.$nav = i.find(e.selector.nav);
                var l = "data-am-pureviewed";
                this.imgUrls = this.imgUrls || [], r && (1 === r && i.addClass(e.className.onlyOne), a.not("[" + l + "]").each(function (e, i) {
                    var a, r;
                    "A" === i.nodeName ? (a = i.href, r = i.title || "") : (a = o(i).data("rel") || i.src, r = o(i).attr("alt") || ""), i.setAttribute(l, "1"), t.imgUrls.push(a), n = n.add(o('<li data-src="' + a + '" data-title="' + r + '"></li>')), s = s.add(o("<li>" + (e + 1) + "</li>"))
                }), i.find(e.selector.total).text(r), this.$slider.append(n), this.$nav.append(s), this.$navItems = this.$nav.find("li"), this.$slides = this.$slider.find("li"))
            }, u.prototype.loadImage = function (t, e) {
                var i = "image-appended";
                if (!t.data(i)) {
                    var n = o("<img>", {src: t.data("src"), alt: t.data("title")});
                    t.html(n).wrapInner('<div class="am-pinch-zoom"></div>').redraw();
                    var s = t.find(this.options.selector.pinchZoom);
                    s.data("amui.pinchzoom", new a(s[0], {})), t.data("image-appended", !0)
                }
                e && e.call(this)
            }, u.prototype.activate = function (t) {
                var e = this.options, i = this.$slides, n = i.index(t), a = t.data("title") || "",
                    r = e.className.active;
                i.find("." + r).is(t) || this.transitioning || (this.loadImage(t, function () {
                    s.utils.imageLoader(t.find("img"), function (t) {
                        o(t).addClass("am-img-loaded")
                    })
                }), this.transitioning = 1, this.$title.text(a), this.$current.text(n + 1), i.removeClass(), t.addClass(r), i.eq(n - 1).addClass(e.className.prevSlide), i.eq(n + 1).addClass(e.className.nextSlide), this.$navItems.removeClass().eq(n).addClass(e.className.active), c ? t.one(c.end, o.proxy(function () {
                    this.transitioning = 0
                }, this)).emulateTransitionEnd(300) : this.transitioning = 0)
            }, u.prototype.nextSlide = function () {
                if (1 !== this.$slides.length) {
                    var t = this.$slides, e = t.filter(".am-active"), i = t.index(e), n = "am-animation-right-spring";
                    i + 1 >= t.length ? l && e.addClass(n).on(l.end, function () {
                        e.removeClass(n)
                    }) : this.activate(t.eq(i + 1))
                }
            }, u.prototype.prevSlide = function () {
                if (1 !== this.$slides.length) {
                    var t = this.$slides, e = t.filter(".am-active"), i = this.$slides.index(e),
                        n = "am-animation-left-spring";
                    0 === i ? l && e.addClass(n).on(l.end, function () {
                        e.removeClass(n)
                    }) : this.activate(t.eq(i - 1))
                }
            }, u.prototype.toggleToolBar = function () {
                this.$pureview.toggleClass(this.options.className.barActive)
            }, u.prototype.open = function (t) {
                var e = t || 0;
                this.checkScrollbar(), this.setScrollbar(), this.activate(this.$slides.eq(e)), this.$pureview.show().redraw().addClass(this.options.className.active), this.$body.addClass(this.options.className.activeBody)
            }, u.prototype.close = function () {
                function t() {
                    this.$pureview.hide(), this.$body.removeClass(e.className.activeBody), this.resetScrollbar()
                }

                var e = this.options;
                this.$pureview.removeClass(e.className.active), this.$slides.removeClass(), c ? this.$pureview.one(c.end, o.proxy(t, this)).emulateTransitionEnd(300) : t.call(this)
            }, u.prototype.checkScrollbar = function () {
                this.scrollbarWidth = s.utils.measureScrollbar()
            }, u.prototype.setScrollbar = function () {
                var t = parseInt(this.$body.css("padding-right") || 0, 10);
                this.scrollbarWidth && this.$body.css("padding-right", t + this.scrollbarWidth)
            }, u.prototype.resetScrollbar = function () {
                this.$body.css("padding-right", "")
            }, o.fn.pureview = n, s.ready(function (t) {
                o("[data-am-pureview]", t).pureview()
            }), o.AMUI.pureview = u, e.exports = u
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4, "./ui.pinchzoom": 34, "./util.hammer": 51}], 38: [function (t, e) {
        (function (i) {
            "use strict";

            function n(t) {
                return this.each(function () {
                    var e = o(this), i = e.data("am.scrollspy"), n = "object" == typeof t && t;
                    i || e.data("am.scrollspy", i = new a(this, n)), "string" == typeof t && i[t]()
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = t("./core"), a = function (t, e) {
                    if (s.support.animation) {
                        this.options = o.extend({}, a.DEFAULTS, e), this.$element = o(t);
                        var i = function () {
                            s.utils.rAF.call(window, o.proxy(this.checkView, this))
                        }.bind(this);
                        this.$window = o(window).on("scroll.scrollspy.amui", i).on("resize.scrollspy.amui orientationchange.scrollspy.amui", s.utils.debounce(i, 50)), this.timer = this.inViewState = this.initInView = null, i()
                    }
                };
            a.DEFAULTS = {
                animation: "fade",
                className: {inView: "am-scrollspy-inview", init: "am-scrollspy-init"},
                repeat: !0,
                delay: 0,
                topOffset: 0,
                leftOffset: 0
            }, a.prototype.checkView = function () {
                var t = this.$element, e = this.options, i = s.utils.isInView(t, e),
                    n = e.animation ? " am-animation-" + e.animation : "";
                i && !this.inViewState && (this.timer && clearTimeout(this.timer), this.initInView || (t.addClass(e.className.init), this.offset = t.offset(), this.initInView = !0, t.trigger("init.scrollspy.amui")), this.timer = setTimeout(function () {
                    i && t.addClass(e.className.inView + n).width()
                }, e.delay), this.inViewState = !0, t.trigger("inview.scrollspy.amui")), !i && this.inViewState && e.repeat && (t.removeClass(e.className.inView + n), this.inViewState = !1, t.trigger("outview.scrollspy.amui"))
            }, a.prototype.check = function () {
                s.utils.rAF.call(window, o.proxy(this.checkView, this))
            }, o.fn.scrollspy = n, s.ready(function (t) {
                o("[data-am-scrollspy]", t).each(function () {
                    var t = o(this), e = s.utils.options(t.data("amScrollspy"));
                    t.scrollspy(e)
                })
            }), o.AMUI.scrollspy = a, e.exports = a
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 39: [function (t, e) {
        (function (i) {
            "use strict";

            function n(t) {
                return this.each(function () {
                    var e = o(this), i = e.data("amui.scrollspynav"), n = "object" == typeof t && t;
                    i || e.data("amui.scrollspynav", i = new a(this, n)), "string" == typeof t && i[t]()
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = t("./core");
            t("./ui.smooth-scroll");
            var a = function (t, e) {
                this.options = o.extend({}, a.DEFAULTS, e), this.$element = o(t), this.anchors = [], this.$links = this.$element.find('a[href^="#"]').each(function (t, e) {
                    this.anchors.push(o(e).attr("href"))
                }.bind(this)), this.$targets = o(this.anchors.join(", "));
                var i = function () {
                    s.utils.rAF.call(window, o.proxy(this.process, this))
                }.bind(this);
                this.$window = o(window).on("scroll.scrollspynav.amui", i).on("resize.scrollspynav.amui orientationchange.scrollspynav.amui", s.utils.debounce(i, 50)), i(), this.scrollProcess()
            };
            a.DEFAULTS = {
                className: {active: "am-active"},
                closest: !1,
                smooth: !0,
                offsetTop: 0
            }, a.prototype.process = function () {
                var t = this.$window.scrollTop(), e = this.options, i = [], n = this.$links, a = this.$targets;
                if (a.each(function (t, n) {
                    s.utils.isInView(n, e) && i.push(n)
                }), i.length) {
                    var r;
                    if (o.each(i, function (e, i) {
                        return o(i).offset().top >= t ? (r = o(i), !1) : void 0
                    }), !r) return;
                    e.closest ? (n.closest(e.closest).removeClass(e.className.active), n.filter('a[href="#' + r.attr("id") + '"]').closest(e.closest).addClass(e.className.active)) : n.removeClass(e.className.active).filter('a[href="#' + r.attr("id") + '"]').addClass(e.className.active)
                }
            }, a.prototype.scrollProcess = function () {
                var t = this.$links, e = this.options;
                e.smooth && t.on("click", function (t) {
                    t.preventDefault();
                    var i = o(this), n = o(i.attr("href"));
                    if (n) {
                        var s = e.offsetTop && !isNaN(parseInt(e.offsetTop)) && parseInt(e.offsetTop) || 0;
                        o(window).smoothScroll({position: n.offset().top - s})
                    }
                })
            }, o.fn.scrollspynav = n, s.ready(function (t) {
                o("[data-am-scrollspy-nav]", t).each(function () {
                    var t = o(this), e = s.utils.options(t.data("amScrollspyNav"));
                    n.call(t, e)
                })
            }), o.AMUI.scrollspynav = a, e.exports = a
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4, "./ui.smooth-scroll": 42}], 40: [function (t, e) {
        (function (i) {
            "use strict";

            function n(t) {
                return this.each(function () {
                    var e = o(this), i = e.data("amui.selected"),
                        n = o.extend({}, s.utils.parseOptions(e.data("amSelected")), s.utils.parseOptions(e.data("amSelectit")), "object" == typeof t && t);
                    (i || "destroy" !== t) && (i || e.data("amui.selected", i = new a(this, n)), "string" == typeof t && i[t] && i[t]())
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = t("./core");
            o.expr[":"].containsNC = function (t, e, i) {
                return (t.textContent || t.innerText || "").toLowerCase().indexOf((i[3] || "").toLowerCase()) >= 0
            };
            var a = function (t, e) {
                this.$element = o(t), this.options = o.extend({}, a.DEFAULTS, e), this.$originalOptions = this.$element.find("option"), this.multiple = t.multiple, this.$selector = null, this.init()
            };
            a.DEFAULTS = {
                btnWidth: null,
                btnSize: null,
                btnStyle: "default",
                dropUp: 0,
                maxHeight: null,
                noSelectedText: "点击选择...",
                selectedClass: "am-checked",
                disabledClass: "am-disabled",
                searchBox: !1,
                tpl: '<div class="am-selected am-dropdown <%= dropUp ? \'am-dropdown-up\': \'\' %>" id="<%= id %>" data-am-dropdown>  <button type="button" class="am-selected-btn am-btn am-dropdown-toggle">    <span class="am-selected-status am-fl"></span>    <i class="am-selected-icon am-icon-caret-<%= dropUp ? \'up\' : \'down\' %>"></i>  </button>  <div class="am-selected-content am-dropdown-content">    <h2 class="am-selected-header"><span class="am-icon-chevron-left">返回</span></h2>   <% if (searchBox) { %>   <div class="am-selected-search">     <input type="text" autocomplete="off" class="am-form-field" />   </div>   <% } %>    <ul class="am-selected-list">      <% for (var i = 0; i < options.length; i++) { %>       <% var option = options[i] %>       <% if (option.header) { %>  <li data-group="<%= option.group %>" class="am-selected-list-header">       <%= option.text %></li>       <% } else { %>       <li class="<%= option.classNames%>"          data-index="<%= option.index %>"          data-group="<%= option.group || 0 %>"          data-value="<%= option.value %>" >         <span class="am-selected-text"><%= option.text %></span>         <i class="am-icon-check"></i></li>      <% } %>      <% } %>    </ul>    <div class="am-selected-hint"></div>  </div></div>',
                listTpl: '<% for (var i = 0; i < options.length; i++) { %>       <% var option = options[i] %>       <% if (option.header) { %>  <li data-group="<%= option.group %>" class="am-selected-list-header">       <%= option.text %></li>       <% } else { %>       <li class="<%= option.classNames %>"          data-index="<%= option.index %>"          data-group="<%= option.group || 0 %>"          data-value="<%= option.value %>" >         <span class="am-selected-text"><%= option.text %></span>         <i class="am-icon-check"></i></li>      <% } %>      <% } %>'
            }, a.prototype.init = function () {
                var t = this, e = this.$element, i = this.options;
                e.hide();
                var n = {
                    id: s.utils.generateGUID("am-selected"),
                    multiple: this.multiple,
                    options: [],
                    searchBox: i.searchBox,
                    dropUp: i.dropUp
                };
                this.$selector = o(s.template(this.options.tpl, n)), this.$list = this.$selector.find(".am-selected-list"), this.$searchField = this.$selector.find(".am-selected-search input"), this.$hint = this.$selector.find(".am-selected-hint");
                var a = this.$selector.find(".am-selected-btn").css({width: this.options.btnWidth}), r = [];
                i.btnSize && r.push("am-btn-" + i.btnSize), i.btnStyle && r.push("am-btn-" + i.btnStyle), a.addClass(r.join(" ")), this.$selector.dropdown({justify: a}), i.maxHeight && this.$selector.find(".am-selected-list").css({
                    "max-height": i.maxHeight,
                    "overflow-y": "scroll"
                });
                var l = [], c = e.attr("minchecked"), u = e.attr("maxchecked");
                e[0].required && l.push("必选"), (c || u) && (c && l.push("至少选择 " + c + " 项"), u && l.push("至多选择 " + u + " 项")), this.$hint.text(l.join("，")), this.renderOptions(), this.$element.after(this.$selector), this.dropdown = this.$selector.data("amui.dropdown"), this.$status = this.$selector.find(".am-selected-status"), setTimeout(function () {
                    t.syncData()
                }, 0), this.bindEvents()
            }, a.prototype.renderOptions = function () {
                function t(t, e, o) {
                    var s = "";
                    e.disabled && (s += i.disabledClass), !e.disabled && e.selected && (s += i.selectedClass), n.push({
                        group: o,
                        index: t,
                        classNames: s,
                        text: e.text,
                        value: e.value
                    })
                }

                var e = this.$element, i = this.options, n = [], o = e.find("optgroup");
                this.$originalOptions = this.$element.find("option"), this.multiple || null !== e.val() || (this.$originalOptions.get(0).selected = !0), o.length ? o.each(function (e) {
                    n.push({header: !0, group: e + 1, text: this.label}), o.eq(e).find("option").each(function (i, n) {
                        t(i, n, e)
                    })
                }) : this.$originalOptions.each(function (e, i) {
                    t(e, i, null)
                }), this.$list.html(s.template(i.listTpl, {options: n})), this.$shadowOptions = this.$list.find("> li").not(".am-selected-list-header")
            }, a.prototype.setChecked = function (t) {
                var e = this.options, i = o(t), n = i.hasClass(e.selectedClass);
                if (!this.multiple) {
                    if (n) return;
                    this.dropdown.close(), this.$shadowOptions.not(i).removeClass(e.selectedClass)
                }
                i.toggleClass(e.selectedClass), this.syncData(t)
            }, a.prototype.syncData = function (t) {
                var e = this, i = this.options, n = [], s = o([]);
                if (this.$shadowOptions.filter("." + i.selectedClass).each(function () {
                    var i = o(this);
                    n.push(i.find(".am-selected-text").text()), t || (s = s.add(e.$originalOptions.filter('[value="' + i.data("value") + '"]').prop("selected", !0)))
                }), t) {
                    var a = o(t);
                    this.$originalOptions.filter('[value="' + a.data("value") + '"]').prop("selected", a.hasClass(i.selectedClass))
                } else this.$originalOptions.not(s).prop("selected", !1);
                this.$element.val() || (n = [i.noSelectedText]), this.$status.text(n.join(", ")), this.$element.trigger("change")
            }, a.prototype.bindEvents = function () {
                var t = this, e = "am-selected-list-header", i = s.utils.debounce(function (i) {
                    t.$shadowOptions.not("." + e).hide().filter(':containsNC("' + i.target.value + '")').show()
                }, 100);
                this.$list.on("click", "> li", function () {
                    var i = o(this);
                    !i.hasClass(t.options.disabledClass) && !i.hasClass(e) && t.setChecked(this)
                }), this.$searchField.on("keyup.selected.amui", i), this.$selector.on("closed.dropdown.amui", function () {
                    t.$searchField.val(""), t.$shadowOptions.css({display: ""})
                }), s.support.mutationobserver && (this.observer = new s.support.mutationobserver(function () {
                    t.$element.trigger("changed.selected.amui")
                }), this.observer.observe(this.$element[0], {
                    childList: !0,
                    attributes: !0,
                    subtree: !0,
                    characterData: !0
                })), this.$element.on("changed.selected.amui", function () {
                    t.renderOptions(), t.syncData()
                })
            }, a.prototype.destroy = function () {
                this.$element.removeData("amui.selected").show(), this.$selector.remove()
            }, o.fn.selected = o.fn.selectIt = n, s.ready(function (t) {
                o("[data-am-selected]", t).selectIt()
            }), o.AMUI.selected = a, e.exports = a
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 41: [function (t, e) {
        (function (i) {
            "use strict";
            t("./ui.modal");
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                o = t("./core"), s = t("./util.qrcode"), a = document, r = n(a), l = function (t) {
                    this.options = n.extend({}, l.DEFAULTS, t || {}), this.$element = null, this.$wechatQr = null, this.pics = null, this.inited = !1, this.active = !1
                };
            l.DEFAULTS = {
                sns: ["weibo", "qq", "qzone", "tqq", "wechat", "renren"],
                title: "分享到",
                cancel: "取消",
                closeOnShare: !0,
                id: o.utils.generateGUID("am-share"),
                desc: "Hi，孤夜观天象，发现一个不错的西西，分享一下下 ;-)",
                via: "Amaze UI",
                tpl: '<div class="am-share am-modal-actions" id="<%= id %>"><h3 class="am-share-title"><%= title %></h3><ul class="am-share-sns am-avg-sm-3"><% for(var i = 0; i < sns.length; i++) {%><li><a href="<%= sns[i].shareUrl %>" data-am-share-to="<%= sns[i].id %>" ><i class="am-icon-<%= sns[i].icon %>"></i><span><%= sns[i].title %></span></a></li><% } %></ul><div class="am-share-footer"><button class="am-btn am-btn-default am-btn-block" data-am-share-close><%= cancel %></button></div></div>'
            }, l.SNS = {
                weibo: {
                    title: "新浪微博",
                    url: "http://service.weibo.com/share/share.php",
                    width: 620,
                    height: 450,
                    icon: "weibo"
                },
                qq: {title: "QQ 好友", url: "http://connect.qq.com/widget/shareqq/index.html", icon: "qq"},
                qzone: {
                    title: "QQ 空间",
                    url: "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey",
                    icon: "star"
                },
                tqq: {title: "腾讯微博", url: "http://v.t.qq.com/share/share.php", icon: "tencent-weibo"},
                wechat: {title: "微信", url: "[qrcode]", icon: "wechat"},
                renren: {title: "人人网", url: "http://widget.renren.com/dialog/share", icon: "renren"},
                douban: {title: "豆瓣", url: "http://www.douban.com/recommend/", icon: "share-alt"},
                mail: {title: "邮件分享", url: "mailto:", icon: "envelope-o"},
                sms: {title: "短信分享", url: "sms:", icon: "comment"}
            }, l.prototype.render = function () {
                var t = this.options, e = [], i = encodeURIComponent(a.title), s = encodeURIComponent(a.location),
                    r = "?body=" + i + s;
                return t.sns.forEach(function (n) {
                    if (l.SNS[n]) {
                        var o, a = l.SNS[n];
                        a.id = n, o = "mail" === n ? r + "&subject=" + t.desc : "sms" === n ? r : "?url=" + s + "&title=" + i, a.shareUrl = a.url + o, e.push(a)
                    }
                }), o.template(t.tpl, n.extend({}, t, {sns: e}))
            }, l.prototype.init = function () {
                if (!this.inited) {
                    var t = this, e = "[data-am-share-to]";
                    r.ready(n.proxy(function () {
                        n("body").append(this.render()), this.$element = n("#" + this.options.id), this.$element.find("[data-am-share-close]").on("click.share.amui", function () {
                            t.close()
                        })
                    }, this)), r.on("click.share.amui", e, n.proxy(function (t) {
                        var i = n(t.target), o = i.is(e) && i || i.parent(e), s = o.attr("data-am-share-to");
                        "mail" !== s && "sms" !== s && (t.preventDefault(), this.shareTo(s, this.setData(s))), this.close()
                    }, this)), this.inited = !0
                }
            }, l.prototype.open = function () {
                !this.inited && this.init(), this.$element && this.$element.modal("open"), this.$element.trigger("open.share.amui"), this.active = !0
            }, l.prototype.close = function () {
                this.$element && this.$element.modal("close"), this.$element.trigger("close.share.amui"), this.active = !1
            }, l.prototype.toggle = function () {
                this.active ? this.close() : this.open()
            }, l.prototype.setData = function (t) {
                if (t) {
                    var e = {url: a.location, title: a.title}, i = this.options.desc, n = this.pics || [],
                        o = /^(qzone|qq|tqq)$/;
                    if (o.test(t) && !n.length) {
                        for (var s = a.images, r = 0; r < s.length && 10 > r; r++) !!s[r].src && n.push(encodeURIComponent(s[r].src));
                        this.pics = n
                    }
                    switch (t) {
                        case"qzone":
                            e.desc = i, e.site = this.options.via, e.pics = n.join("|");
                            break;
                        case"qq":
                            e.desc = i, e.site = this.options.via, e.pics = n[0];
                            break;
                        case"tqq":
                            e.pic = n.join("|")
                    }
                    return e
                }
            }, l.prototype.shareTo = function (t, e) {
                var i = l.SNS[t];
                if (i) {
                    if ("wechat" === t || "weixin" === t) return this.wechatQr();
                    var n = [];
                    for (var o in e) e[o] && n.push(o.toString() + "=" + ("pic" === o || "pics" === o ? e[o] : encodeURIComponent(e[o])));
                    window.open(i.url + "?" + n.join("&"))
                }
            }, l.prototype.wechatQr = function () {
                if (!this.$wechatQr) {
                    var t = o.utils.generateGUID("am-share-wechat"),
                        e = n('<div class="am-modal am-modal-no-btn am-share-wechat-qr"><div class="am-modal-dialog"><div class="am-modal-hd">分享到微信 <a href="" class="am-close am-close-spin" data-am-modal-close>&times;</a> </div><div class="am-modal-bd"><div class="am-share-wx-qr"></div><div class="am-share-wechat-tip">打开微信，点击底部的<em>发现</em>，<br/> 使用<em>扫一扫</em>将网页分享至朋友圈</div></div></div></div>');
                    e.attr("id", t);
                    var i = new s({
                        render: "canvas",
                        correctLevel: 0,
                        text: a.location.href,
                        width: 180,
                        height: 180,
                        background: "#fff",
                        foreground: "#000"
                    });
                    e.find(".am-share-wx-qr").html(i), e.appendTo(n("body")), this.$wechatQr = n("#" + t)
                }
                this.$wechatQr.modal("open")
            };
            var c = new l;
            r.on("click.share.amui.data-api", '[data-am-toggle="share"]', function (t) {
                t.preventDefault(), c.toggle()
            }), n.AMUI.share = c, e.exports = c
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4, "./ui.modal": 32, "./util.qrcode": 52}], 42: [function (t, e) {
        (function (i) {
            "use strict";
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                o = t("./core"), s = o.utils.rAF, a = o.utils.cancelAF, r = !1, l = function (t, e) {
                    function i(t) {
                        return (t /= .5) < 1 ? .5 * Math.pow(t, 5) : .5 * (Math.pow(t - 2, 5) + 2)
                    }

                    function o() {
                        p.off("touchstart.smoothscroll.amui", y), r = !1
                    }

                    function c(t) {
                        r && (u || (u = t), d = Math.min(1, Math.max((t - u) / w, 0)), h = Math.round(m + g * i(d)), g > 0 && h > f && (h = f), 0 > g && f > h && (h = f), v != h && p.scrollTop(h), v = h, h !== f ? (a(b), b = s(c)) : (a(b), o()))
                    }

                    e = e || {};
                    var u, d, h, p = n(t), f = parseInt(e.position) || l.DEFAULTS.position, m = p.scrollTop(), v = m,
                        g = f - m, w = e.speed || Math.min(750, Math.min(1500, Math.abs(m - f))), y = function () {
                            o()
                        };
                    if (!r && 0 !== g) {
                        p.on("touchstart.smoothscroll.amui", y), r = !0;
                        var b = s(c)
                    }
                };
            l.DEFAULTS = {position: 0}, n.fn.smoothScroll = function (t) {
                return this.each(function () {
                    new l(this, t)
                })
            }, n(document).on("click.smoothScroll.amui.data-api", "[data-am-smooth-scroll]", function (t) {
                t.preventDefault();
                var e = o.utils.parseOptions(n(this).data("amSmoothScroll"));
                n(window).smoothScroll(e)
            }), e.exports = l
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 43: [function (t, e) {
        (function (i) {
            "use strict";

            function n(t) {
                return this.each(function () {
                    var e = o(this), i = e.data("amui.sticky"), n = "object" == typeof t && t;
                    i || e.data("amui.sticky", i = new a(this, n)), "string" == typeof t && i[t]()
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = t("./core"), a = function (t, e) {
                    var i = this;
                    this.options = o.extend({}, a.DEFAULTS, e), this.$element = o(t), this.sticked = null, this.inited = null, this.$holder = void 0, this.$window = o(window).on("scroll.sticky.amui", s.utils.debounce(o.proxy(this.checkPosition, this), 10)).on("resize.sticky.amui orientationchange.sticky.amui", s.utils.debounce(function () {
                        i.reset(!0, function () {
                            i.checkPosition()
                        })
                    }, 50)).on("load.sticky.amui", o.proxy(this.checkPosition, this)), this.offset = this.$element.offset(), this.init()
                };
            a.DEFAULTS = {
                top: 0,
                bottom: 0,
                animation: "",
                className: {
                    sticky: "am-sticky",
                    resetting: "am-sticky-resetting",
                    stickyBtm: "am-sticky-bottom",
                    animationRev: "am-animation-reverse"
                }
            }, a.prototype.init = function () {
                var t = this.check();
                if (!t) return !1;
                var e = this.$element, i = "";
                o.each(e.css(["marginTop", "marginRight", "marginBottom", "marginLeft"]), function (t, e) {
                    return i += " " + e
                });
                var n = o('<div class="am-sticky-placeholder"></div>').css({
                    height: "absolute" != e.css("position") ? e.outerHeight() : "",
                    "float": "none" != e.css("float") ? e.css("float") : "",
                    margin: i
                });
                return this.$holder = e.css("margin", 0).wrap(n).parent(), this.inited = 1, !0
            }, a.prototype.reset = function (t, e) {
                var i = this.options, n = this.$element, o = i.animation ? " am-animation-" + i.animation : "",
                    a = function () {
                        n.css({
                            position: "",
                            top: "",
                            width: "",
                            left: "",
                            margin: 0
                        }), n.removeClass([o, i.className.animationRev, i.className.sticky, i.className.resetting].join(" ")), this.animating = !1, this.sticked = !1, this.offset = n.offset(), e && e()
                    }.bind(this);
                n.addClass(i.className.resetting), !t && i.animation && s.support.animation ? (this.animating = !0, n.removeClass(o).one(s.support.animation.end, function () {
                    a()
                }).width(), n.addClass(o + " " + i.className.animationRev)) : a()
            }, a.prototype.check = function () {
                if (!this.$element.is(":visible")) return !1;
                var t = this.options.media;
                if (t) switch (typeof t) {
                    case"number":
                        if (window.innerWidth < t) return !1;
                        break;
                    case"string":
                        if (window.matchMedia && !window.matchMedia(t).matches) return !1
                }
                return !0
            }, a.prototype.checkPosition = function () {
                if (!this.inited) {
                    var t = this.init();
                    if (!t) return
                }
                var e = this.options, i = this.$window.scrollTop(), n = e.top, o = e.bottom, s = this.$element,
                    a = e.animation ? " am-animation-" + e.animation : "", r = [e.className.sticky, a].join(" ");
                "function" == typeof o && (o = o(this.$element));
                var l = i > this.$holder.offset().top;
                !this.sticked && l ? s.addClass(r) : this.sticked && !l && this.reset(), this.$holder.height(s.is(":visible") ? s.height() : 0), l && s.css({
                    top: n,
                    left: this.$holder.offset().left,
                    width: this.$holder.width()
                }), this.sticked = l
            }, o.fn.sticky = n, o(window).on("load", function () {
                o("[data-am-sticky]").each(function () {
                    var t = o(this), e = s.utils.options(t.attr("data-am-sticky"));
                    n.call(t, e)
                })
            }), o.AMUI.sticky = a, e.exports = a
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 44: [function (t, e) {
        (function (i) {
            "use strict";

            function n(t) {
                return this.each(function () {
                    var e = o(this), i = e.is(".am-tabs") && e || e.closest(".am-tabs"), n = i.data("amui.tabs"),
                        a = o.extend({}, o.isPlainObject(t) ? t : {}, s.utils.parseOptions(e.data("amTabs")));
                    n || i.data("amui.tabs", n = new c(i[0], a)), "string" == typeof t && e.is(".am-tabs-nav a") && n[t](e)
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = t("./core"), a = t("./util.hammer"), r = s.support.transition, l = s.support.animation,
                c = function (t, e) {
                    this.$element = o(t), this.options = o.extend({}, c.DEFAULTS, e || {}), this.$tabNav = this.$element.find(this.options.selector.nav), this.$navs = this.$tabNav.find("a"), this.$content = this.$element.find(this.options.selector.content), this.$tabPanels = this.$content.find(this.options.selector.panel), this.transitioning = null, this.init()
                };
            c.DEFAULTS = {
                selector: {nav: "> .am-tabs-nav", content: "> .am-tabs-bd", panel: "> .am-tab-panel"},
                className: {active: "am-active"}
            }, c.prototype.init = function () {
                var t = this, e = this.options;
                if (1 !== this.$tabNav.find("> .am-active").length) {
                    var i = this.$tabNav;
                    this.activate(i.children("li").first(), i), this.activate(this.$tabPanels.first(), this.$content)
                }
                if (this.$navs.on("click.tabs.amui", function (e) {
                    e.preventDefault(), t.open(o(this))
                }), !e.noSwipe) {
                    var n = new a(this.$content[0]);
                    n.get("pan").set({
                        direction: a.DIRECTION_HORIZONTAL,
                        threshold: 120
                    }), n.on("panleft", s.utils.debounce(function (i) {
                        i.preventDefault();
                        var n = o(i.target);
                        n.is(e.selector.panel) || (n = n.closest(e.selector.panel)), n.focus();
                        var s = t.getNextNav(n);
                        s && t.open(s)
                    }, 100)), n.on("panright", s.utils.debounce(function (i) {
                        i.preventDefault();
                        var n = o(i.target);
                        n.is(e.selector.panel) || (n = n.closest(e.selector.panel));
                        var s = t.getPrevNav(n);
                        s && t.open(s)
                    }, 100))
                }
            }, c.prototype.open = function (t) {
                if (t && !this.transitioning && !t.parent("li").hasClass("am-active")) {
                    var e = this.$tabNav, i = this.$navs, n = this.$content, s = t.attr("href"), a = /^#.+$/,
                        r = a.test(s) && this.$content.find(s) || this.$tabPanels.eq(i.index(t)),
                        l = e.find(".am-active a")[0], c = o.Event("open.tabs.amui", {relatedTarget: l});
                    t.trigger(c), c.isDefaultPrevented() || (this.activate(t.closest("li"), e), this.activate(r, n, function () {
                        t.trigger({type: "opened.tabs.amui", relatedTarget: l})
                    }))
                }
            }, c.prototype.activate = function (t, e, i) {
                function n() {
                    i && i(), this.transitioning = !1
                }

                this.transitioning = !0;
                var s = e.find("> .am-active"), a = i && r && !!s.length;
                s.removeClass("am-active am-in"), t.addClass("am-active"), a ? (t.redraw(), t.addClass("am-in")) : t.removeClass("am-fade"), a ? s.one(r.end, o.proxy(n, this)) : o.proxy(n, this)()
            }, c.prototype.getNextNav = function (t) {
                var e = this.$tabPanels.index(t), i = "am-animation-right-spring";
                return e + 1 >= this.$navs.length ? (l && t.addClass(i).on(l.end, function () {
                    t.removeClass(i)
                }), null) : this.$navs.eq(e + 1)
            }, c.prototype.getPrevNav = function (t) {
                var e = this.$tabPanels.index(t), i = "am-animation-left-spring";
                return 0 === e ? (l && t.addClass(i).on(l.end, function () {
                    t.removeClass(i)
                }), null) : this.$navs.eq(e - 1)
            }, o.fn.tabs = n, s.ready(function (t) {
                o("[data-am-tabs]", t).tabs()
            }), o.AMUI.tabs = c, e.exports = c
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4, "./util.hammer": 51}], 45: [function (t, e) {
        (function (i) {
            "use strict";

            function n(t) {
                return this.each(function () {
                    var e = o(this), i = e.data("amui.ucheck"),
                        n = o.extend({}, s.utils.parseOptions(e.data("amUcheck")), "object" == typeof t && t);
                    (i || "destroy" !== t) && (i || e.data("amui.ucheck", i = new a(this, n)), "string" == typeof t && i[t] && i[t](), s.support.touch && e.parent().hover(function () {
                        e.addClass("am-nohover")
                    }, function () {
                        e.removeClass("am-nohover")
                    }))
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = t("./core"), a = function (t, e) {
                    this.options = o.extend({}, a.DEFAULTS, e), this.$element = o(t), this.init()
                };
            a.DEFAULTS = {
                checkboxClass: "am-ucheck-checkbox",
                radioClass: "am-ucheck-radio",
                checkboxTpl: '<span class="am-ucheck-icons"><i class="am-icon-unchecked"></i><i class="am-icon-checked"></i></span>',
                radioTpl: '<span class="am-ucheck-icons"><i class="am-icon-unchecked"></i><i class="am-icon-checked"></i></span>'
            }, a.prototype.init = function () {
                var t = this.$element, e = t[0], i = this.options;
                "checkbox" === e.type ? t.addClass(i.checkboxClass).after(i.checkboxTpl) : "radio" === e.type && t.addClass(i.radioClass).after(i.radioTpl)
            }, a.prototype.check = function () {
                this.$element.prop("checked", !0).trigger("change.ucheck.amui").trigger("checked.ucheck.amui")
            }, a.prototype.uncheck = function () {
                this.$element.prop("checked", !1).trigger("change.ucheck.amui").trigger("unchecked.ucheck.amui")
            }, a.prototype.toggle = function () {
                this.$element.prop("checked", function (t, e) {
                    return !e
                }).trigger("change.ucheck.amui").trigger("toggled.ucheck.amui")
            }, a.prototype.disable = function () {
                this.$element.prop("disabled", !0).trigger("change.ucheck.amui").trigger("disabled.ucheck.amui")
            }, a.prototype.enable = function () {
                this.$element.prop("disabled", !1), this.$element.trigger("change.ucheck.amui").trigger("enabled.ucheck.amui")
            }, a.prototype.destroy = function () {
                this.$element.removeData("amui.ucheck").removeClass(this.options.checkboxClass + " " + this.options.radioClass).next(".am-ucheck-icons").remove().end().trigger("destroyed.ucheck.amui")
            }, o.fn.uCheck = n, s.ready(function (t) {
                o("[data-am-ucheck]", t).uCheck()
            }), o.AMUI.uCheck = a, e.exports = a
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 46: [function (t, e) {
        (function (i) {
            "use strict";

            function n(t) {
                return this.each(function () {
                    var e = o(this), i = e.data("amui.validator"),
                        n = o.extend({}, s.utils.parseOptions(e.data("amValidator")), "object" == typeof t && t);
                    i || e.data("amui.validator", i = new a(this, n)), "string" == typeof t && i[t] && i[t]()
                })
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = t("./core"), a = function (t, e) {
                    this.options = o.extend({}, a.DEFAULTS, e), this.options.patterns = o.extend({}, a.patterns, this.options.patterns);
                    var i = this.options.locales;
                    !a.validationMessages[i] && (this.options.locales = "zh_CN"), this.$element = o(t), this.init()
                };
            a.DEFAULTS = {
                debug: !1,
                locales: "zh_CN",
                H5validation: !1,
                H5inputType: ["email", "url", "number"],
                patterns: {},
                patternClassPrefix: "js-pattern-",
                activeClass: "am-active",
                inValidClass: "am-field-error",
                validClass: "am-field-valid",
                validateOnSubmit: !0,
                allFields: ":input:visible:not(:submit, :button, :disabled, .am-novalidate)",
                customEvents: "validate",
                keyboardFields: ":input:not(:submit, :button, :disabled, .am-novalidate)",
                keyboardEvents: "focusout, change",
                activeKeyup: !0,
                pointerFields: 'input[type="range"]:not(:disabled, .am-novalidate), input[type="radio"]:not(:disabled, .am-novalidate), input[type="checkbox"]:not(:disabled, .am-novalidate), select:not(:disabled, .am-novalidate), option:not(:disabled, .am-novalidate)',
                pointerEvents: "click",
                onValid: function () {
                },
                onInValid: function () {
                },
                markValid: function (t) {
                    var e = this.options, i = o(t.field), n = i.closest(".am-form-group");
                    i.addClass(e.validClass).removeClass(e.inValidClass), n.addClass("am-form-success").removeClass("am-form-error"), e.onValid.call(this, t)
                },
                markInValid: function (t) {
                    var e = this.options, i = o(t.field), n = i.closest(".am-form-group");
                    i.addClass(e.inValidClass + " " + e.activeClass).removeClass(e.validClass), n.addClass("am-form-error").removeClass("am-form-success"), e.onInValid.call(this, t)
                },
                validate: function () {
                },
                submit: null
            }, a.VERSION = "2.0.0", a.patterns = {
                email: /^((([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/,
                url: /^(https?|ftp):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/,
                number: /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/,
                dateISO: /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,
                integer: /^-?\d+$/
            }, a.validationMessages = {
                zh_CN: {
                    valueMissing: "请填写（选择）此字段",
                    customError: {
                        tooShort: "至少填写 %s 个字符",
                        checkedOverflow: "至多选择 %s 项",
                        checkedUnderflow: "至少选择 %s 项"
                    },
                    patternMismatch: "请按照要求的格式填写",
                    rangeOverflow: "请填写小于等于 %s 的值",
                    rangeUnderflow: "请填写大于等于 %s 的值",
                    stepMismatch: "",
                    tooLong: "至多填写 %s 个字符",
                    typeMismatch: "请按照要求的类型填写"
                }
            }, a.ERROR_MAP = {
                tooShort: "minlength",
                checkedOverflow: "maxchecked",
                checkedUnderflow: "minchecked",
                rangeOverflow: "max",
                rangeUnderflow: "min",
                tooLong: "maxlength"
            }, a.prototype.init = function () {
                function t(t) {
                    var e = t.toString();
                    return e.substring(1, e.length - 1)
                }

                function e(t, e, a) {
                    var r = e.split(","), l = function () {
                        i.validate(this)
                    };
                    a && (l = s.utils.debounce(l, a)), o.each(r, function (e, i) {
                        n.on(i + ".validator.amui", t, l)
                    })
                }

                var i = this, n = this.$element, a = this.options;
                return a.H5validation && s.support.formValidation ? !1 : (n.attr("novalidate", "novalidate"), o.each(a.H5inputType, function (e, i) {
                    var o = n.find("input[type=" + i + "]");
                    o.attr("pattern") || o.attr("pattern", t(a.patterns[i]))
                }), o.each(a.patterns, function (e, i) {
                    var o = n.find("." + a.patternClassPrefix + e);
                    !o.attr("pattern") && o.attr("pattern", t(i))
                }), n.submit(function (t) {
                    if ("function" == typeof a.submit) return a.submit.call(i, t);
                    if (a.validateOnSubmit) {
                        var e = i.isFormValid();
                        return "boolean" === o.type(e) ? e : n.data("amui.checked") ? !0 : (o.when(e).then(function () {
                            n.data("amui.checked", !0).submit()
                        }, function () {
                            n.data("amui.checked", !1).find("." + a.inValidClass).eq(0).focus()
                        }), !1)
                    }
                }), e(":input", a.customEvents), e(a.keyboardFields, a.keyboardEvents), e(a.pointerFields, a.pointerEvents), e(".am-active", "keyup", 50), void e("textarea[maxlength]", "keyup", 50))
            }, a.prototype.isValid = function (t) {
                var e = o(t);
                return void 0 === e.data("validity") && this.validate(t), e.data("validity") && e.data("validity").valid
            }, a.prototype.validate = function (t) {
                var e = this, i = this.$element, n = this.options, s = o(t), a = s.data("equalTo");
                a && s.attr("pattern", "^" + i.find(a).val() + "$");
                var r = s.attr("pattern") || !1, l = new RegExp(r), c = null, u = null,
                    d = s.is("[type=checkbox]") ? (u = i.find('input[name="' + t.name + '"]')).filter(":checked").length : s.is("[type=radio]") ? (c = this.$element.find('input[name="' + t.name + '"]')).filter(":checked").length > 0 : s.val();
                s = u && u.length ? u.first() : s;
                var h = void 0 !== s.attr("required") && "false" !== s.attr("required"),
                    p = parseInt(s.attr("maxlength"), 10), f = parseInt(s.attr("minlength"), 10),
                    m = Number(s.attr("min")), v = Number(s.attr("max")),
                    g = this.createValidity({field: s[0], valid: !0});
                if (n.debug && window.console && (console.log("Validate: value -> [" + d + ", regex -> [" + l + "], required -> " + h), console.log("Regex test: " + l.test(d) + ", Pattern: " + r)), !isNaN(p) && d.length > p && (g.valid = !1, g.tooLong = !0), !isNaN(f) && d.length < f && (g.valid = !1, g.customError = "tooShort"), !isNaN(m) && Number(d) < m && (g.valid = !1, g.rangeUnderflow = !0), !isNaN(v) && Number(d) > v && (g.valid = !1, g.rangeOverflow = !0), h && !d) g.valid = !1, g.valueMissing = !0; else if ((u || s.is('select[multiple="multiple"]')) && d) {
                    d = u ? d : d.length;
                    var w = parseInt(s.attr("minchecked"), 10), y = parseInt(s.attr("maxchecked"), 10);
                    !isNaN(w) && w > d && (g.valid = !1, g.customError = "checkedUnderflow"), !isNaN(y) && d > y && (g.valid = !1, g.customError = "checkedOverflow")
                } else r && !l.test(d) && d && (g.valid = !1, g.patternMismatch = !0);
                var b, T = function (t) {
                    this.markField(t), s.trigger("validated.field.validator.amui", t).data("validity", t);
                    var i = c || u;
                    i && i.not(s).data("validity", t).each(function () {
                        t.field = this, e.markField(t)
                    })
                };
                if ("function" == typeof n.validate && (b = n.validate.call(this, g)), b) {
                    var x = new o.Deferred;
                    return s.data("amui.dfdValidity", x.promise()), o.when(b).always(function (t) {
                        x[t.valid ? "resolve" : "reject"](t), T.call(e, t)
                    })
                }
                T.call(this, g)
            }, a.prototype.markField = function (t) {
                var e = this.options, i = "mark" + (t.valid ? "" : "In") + "Valid";
                e[i] && e[i].call(this, t)
            }, a.prototype.validateForm = function () {
                var t = this, e = this.$element, i = this.options, n = e.find(i.allFields), s = [], a = !0, r = [],
                    l = o([]), c = [], u = !1;
                e.trigger("validate.form.validator.amui");
                var d = n.filter(function () {
                    var t;
                    if ("INPUT" === this.tagName && "radio" === this.type) {
                        if (t = this.name, s[t] === !0) return !1;
                        s[t] = !0
                    }
                    return !0
                });
                d.each(function () {
                    var i = o(this), n = t.isValid(this), s = i.data("validity");
                    a = !!n && a, r.push(s), n || (l = l.add(o(this), e));
                    var d = i.data("amui.dfdValidity");
                    if (d) c.push(d), u = !0; else {
                        var h = new o.Deferred;
                        c.push(h.promise()), h[n ? "resolve" : "reject"](s)
                    }
                });
                var h = {valid: a, $invalidFields: l, validity: r, promises: c, async: u};
                return e.trigger("validated.form.validator.amui", h), h
            }, a.prototype.isFormValid = function () {
                var t = this, e = this.validateForm(), i = function (e) {
                    t.$element.trigger(e + ".validator.amui")
                };
                if (e.async) {
                    var n = new o.Deferred;
                    return o.when.apply(null, e.promises).then(function () {
                        n.resolve(), i("valid")
                    }, function () {
                        n.reject(), i("invalid")
                    }), n.promise()
                }
                return e.valid ? (i("valid"), !0) : (e.$invalidFields.first().focus(), i("invalid"), !1)
            }, a.prototype.createValidity = function (t) {
                return o.extend({
                    customError: t.customError || !1,
                    patternMismatch: t.patternMismatch || !1,
                    rangeOverflow: t.rangeOverflow || !1,
                    rangeUnderflow: t.rangeUnderflow || !1,
                    stepMismatch: t.stepMismatch || !1,
                    tooLong: t.tooLong || !1,
                    typeMismatch: t.typeMismatch || !1,
                    valid: t.valid || !0,
                    valueMissing: t.valueMissing || !1
                }, t)
            }, a.prototype.getValidationMessage = function (t) {
                var e, i, n = a.validationMessages[this.options.locales], s = "%s", r = o(t.field);
                return (r.is('[type="checkbox"]') || r.is('[type="radio"]')) && (r = this.$element.find("[name=" + r.attr("name") + "]").first()), o.each(t, function (t, i) {
                    return "field" === t || "valid" === t ? t : "customError" === t && i ? (e = i, n = n.customError, !1) : i === !0 ? (e = t, !1) : void 0
                }), i = n[e] || void 0, i && a.ERROR_MAP[e] && (i = i.replace(s, r.attr(a.ERROR_MAP[e]) || "规定的")), i
            }, o.fn.validator = n, s.ready(function (t) {
                o("[data-am-validator]", t).validator()
            }), o.AMUI.validator = a, e.exports = a
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 47: [function (t, e) {
        (function (i) {
            "use strict";
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core");
            var o = {
                get: function (t) {
                    var e, i = encodeURIComponent(t) + "=", n = document.cookie.indexOf(i), o = null;
                    return n > -1 && (e = document.cookie.indexOf(";", n), -1 == e && (e = document.cookie.length), o = decodeURIComponent(document.cookie.substring(n + i.length, e))), o
                }, set: function (t, e, i, n, o, s) {
                    var a = encodeURIComponent(t) + "=" + encodeURIComponent(e);
                    i instanceof Date && (a += "; expires=" + i.toGMTString()), n && (a += "; path=" + n), o && (a += "; domain=" + o), s && (a += "; secure"), document.cookie = a
                }, unset: function (t, e, i, n) {
                    this.set(t, "", new Date(0), e, i, n)
                }
            };
            n.AMUI.utils.cookie = o, e.exports = o
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 48: [function (t, e) {
        (function (t) {
            "use strict";

            function i(t, e) {
                function n(t, e) {
                    return function () {
                        return t.apply(e, arguments)
                    }
                }

                var o;
                if (e = e || {}, this.trackingClick = !1, this.trackingClickStart = 0, this.targetElement = null, this.touchStartX = 0, this.touchStartY = 0, this.lastTouchIdentifier = 0, this.touchBoundary = e.touchBoundary || 10, this.layer = t, this.tapDelay = e.tapDelay || 200, this.tapTimeout = e.tapTimeout || 700, !i.notNeeded(t)) {
                    for (var a = ["onMouse", "onClick", "onTouchStart", "onTouchMove", "onTouchEnd", "onTouchCancel"], r = this, l = 0, c = a.length; c > l; l++) r[a[l]] = n(r[a[l]], r);
                    s && (t.addEventListener("mouseover", this.onMouse, !0), t.addEventListener("mousedown", this.onMouse, !0), t.addEventListener("mouseup", this.onMouse, !0)), t.addEventListener("click", this.onClick, !0), t.addEventListener("touchstart", this.onTouchStart, !1), t.addEventListener("touchmove", this.onTouchMove, !1), t.addEventListener("touchend", this.onTouchEnd, !1), t.addEventListener("touchcancel", this.onTouchCancel, !1), Event.prototype.stopImmediatePropagation || (t.removeEventListener = function (e, i, n) {
                        var o = Node.prototype.removeEventListener;
                        "click" === e ? o.call(t, e, i.hijacked || i, n) : o.call(t, e, i, n)
                    }, t.addEventListener = function (e, i, n) {
                        var o = Node.prototype.addEventListener;
                        "click" === e ? o.call(t, e, i.hijacked || (i.hijacked = function (t) {
                            t.propagationStopped || i(t)
                        }), n) : o.call(t, e, i, n)
                    }), "function" == typeof t.onclick && (o = t.onclick, t.addEventListener("click", function (t) {
                        o(t)
                    }, !1), t.onclick = null)
                }
            }

            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof t ? t.jQuery : null,
                o = navigator.userAgent.indexOf("Windows Phone") >= 0,
                s = navigator.userAgent.indexOf("Android") > 0 && !o,
                a = /iP(ad|hone|od)/.test(navigator.userAgent) && !o,
                r = a && /OS 4_\d(_\d)?/.test(navigator.userAgent), l = a && /OS [6-7]_\d/.test(navigator.userAgent),
                c = navigator.userAgent.indexOf("BB10") > 0;
            i.prototype.needsClick = function (t) {
                switch (t.nodeName.toLowerCase()) {
                    case"button":
                    case"select":
                    case"textarea":
                        if (t.disabled) return !0;
                        break;
                    case"input":
                        if (a && "file" === t.type || t.disabled) return !0;
                        break;
                    case"label":
                    case"iframe":
                    case"video":
                        return !0
                }
                return /\bneedsclick\b/.test(t.className)
            }, i.prototype.needsFocus = function (t) {
                switch (t.nodeName.toLowerCase()) {
                    case"textarea":
                        return !0;
                    case"select":
                        return !s;
                    case"input":
                        switch (t.type) {
                            case"button":
                            case"checkbox":
                            case"file":
                            case"image":
                            case"radio":
                            case"submit":
                                return !1
                        }
                        return !t.disabled && !t.readOnly;
                    default:
                        return /\bneedsfocus\b/.test(t.className)
                }
            }, i.prototype.sendClick = function (t, e) {
                var i, n;
                document.activeElement && document.activeElement !== t && document.activeElement.blur(), n = e.changedTouches[0], i = document.createEvent("MouseEvents"), i.initMouseEvent(this.determineEventType(t), !0, !0, window, 1, n.screenX, n.screenY, n.clientX, n.clientY, !1, !1, !1, !1, 0, null), i.forwardedTouchEvent = !0, t.dispatchEvent(i)
            }, i.prototype.determineEventType = function (t) {
                return s && "select" === t.tagName.toLowerCase() ? "mousedown" : "click"
            }, i.prototype.focus = function (t) {
                var e;
                a && t.setSelectionRange && 0 !== t.type.indexOf("date") && "time" !== t.type && "month" !== t.type ? (e = t.value.length, t.setSelectionRange(e, e)) : t.focus()
            }, i.prototype.updateScrollParent = function (t) {
                var e, i;
                if (e = t.fastClickScrollParent, !e || !e.contains(t)) {
                    i = t;
                    do {
                        if (i.scrollHeight > i.offsetHeight) {
                            e = i, t.fastClickScrollParent = i;
                            break
                        }
                        i = i.parentElement
                    } while (i)
                }
                e && (e.fastClickLastScrollTop = e.scrollTop)
            }, i.prototype.getTargetElementFromEventTarget = function (t) {
                return t.nodeType === Node.TEXT_NODE ? t.parentNode : t
            }, i.prototype.onTouchStart = function (t) {
                var e, i, n;
                if (t.targetTouches.length > 1) return !0;
                if (e = this.getTargetElementFromEventTarget(t.target), i = t.targetTouches[0], a) {
                    if (n = window.getSelection(), n.rangeCount && !n.isCollapsed) return !0;
                    if (!r) {
                        if (i.identifier && i.identifier === this.lastTouchIdentifier) return t.preventDefault(), !1;
                        this.lastTouchIdentifier = i.identifier, this.updateScrollParent(e)
                    }
                }
                return this.trackingClick = !0, this.trackingClickStart = t.timeStamp, this.targetElement = e, this.touchStartX = i.pageX, this.touchStartY = i.pageY, t.timeStamp - this.lastClickTime < this.tapDelay && t.preventDefault(), !0
            }, i.prototype.touchHasMoved = function (t) {
                var e = t.changedTouches[0], i = this.touchBoundary;
                return Math.abs(e.pageX - this.touchStartX) > i || Math.abs(e.pageY - this.touchStartY) > i ? !0 : !1
            }, i.prototype.onTouchMove = function (t) {
                return this.trackingClick ? ((this.targetElement !== this.getTargetElementFromEventTarget(t.target) || this.touchHasMoved(t)) && (this.trackingClick = !1, this.targetElement = null), !0) : !0
            }, i.prototype.findControl = function (t) {
                return void 0 !== t.control ? t.control : t.htmlFor ? document.getElementById(t.htmlFor) : t.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")
            }, i.prototype.onTouchEnd = function (t) {
                var e, i, n, o, c, u = this.targetElement;
                if (!this.trackingClick) return !0;
                if (t.timeStamp - this.lastClickTime < this.tapDelay) return this.cancelNextClick = !0, !0;
                if (t.timeStamp - this.trackingClickStart > this.tapTimeout) return !0;
                if (this.cancelNextClick = !1, this.lastClickTime = t.timeStamp, i = this.trackingClickStart, this.trackingClick = !1, this.trackingClickStart = 0, l && (c = t.changedTouches[0], u = document.elementFromPoint(c.pageX - window.pageXOffset, c.pageY - window.pageYOffset) || u, u.fastClickScrollParent = this.targetElement.fastClickScrollParent), n = u.tagName.toLowerCase(), "label" === n) {
                    if (e = this.findControl(u)) {
                        if (this.focus(u), s) return !1;
                        u = e
                    }
                } else if (this.needsFocus(u)) return t.timeStamp - i > 100 || a && window.top !== window && "input" === n ? (this.targetElement = null, !1) : (this.focus(u), this.sendClick(u, t), a && "select" === n || (this.targetElement = null, t.preventDefault()), !1);
                return a && !r && (o = u.fastClickScrollParent, o && o.fastClickLastScrollTop !== o.scrollTop) ? !0 : (this.needsClick(u) || (t.preventDefault(), this.sendClick(u, t)), !1)
            }, i.prototype.onTouchCancel = function () {
                this.trackingClick = !1, this.targetElement = null
            }, i.prototype.onMouse = function (t) {
                return this.targetElement ? t.forwardedTouchEvent ? !0 : t.cancelable && (!this.needsClick(this.targetElement) || this.cancelNextClick) ? (t.stopImmediatePropagation ? t.stopImmediatePropagation() : t.propagationStopped = !0, t.stopPropagation(), t.preventDefault(), !1) : !0 : !0
            }, i.prototype.onClick = function (t) {
                var e;
                return this.trackingClick ? (this.targetElement = null, this.trackingClick = !1, !0) : "submit" === t.target.type && 0 === t.detail ? !0 : (e = this.onMouse(t), e || (this.targetElement = null), e)
            }, i.prototype.destroy = function () {
                var t = this.layer;
                s && (t.removeEventListener("mouseover", this.onMouse, !0), t.removeEventListener("mousedown", this.onMouse, !0), t.removeEventListener("mouseup", this.onMouse, !0)), t.removeEventListener("click", this.onClick, !0), t.removeEventListener("touchstart", this.onTouchStart, !1), t.removeEventListener("touchmove", this.onTouchMove, !1), t.removeEventListener("touchend", this.onTouchEnd, !1), t.removeEventListener("touchcancel", this.onTouchCancel, !1)
            }, i.notNeeded = function (t) {
                var e, i, n, o;
                if ("undefined" == typeof window.ontouchstart) return !0;
                if (i = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [, 0])[1]) {
                    if (!s) return !0;
                    if (e = document.querySelector("meta[name=viewport]")) {
                        if (-1 !== e.content.indexOf("user-scalable=no")) return !0;
                        if (i > 31 && document.documentElement.scrollWidth <= window.outerWidth) return !0
                    }
                }
                if (c && (n = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/), n[1] >= 10 && n[2] >= 3 && (e = document.querySelector("meta[name=viewport]")))) {
                    if (-1 !== e.content.indexOf("user-scalable=no")) return !0;
                    if (document.documentElement.scrollWidth <= window.outerWidth) return !0
                }
                return "none" === t.style.msTouchAction || "manipulation" === t.style.touchAction ? !0 : (o = +(/Firefox\/([0-9]+)/.exec(navigator.userAgent) || [, 0])[1], o >= 27 && (e = document.querySelector("meta[name=viewport]"), e && (-1 !== e.content.indexOf("user-scalable=no") || document.documentElement.scrollWidth <= window.outerWidth)) ? !0 : "none" === t.style.touchAction || "manipulation" === t.style.touchAction ? !0 : !1)
            }, i.attach = function (t, e) {
                return new i(t, e)
            }, i.VERSION = "1.0.6", n && (n.AMUI ? n.AMUI.FastClick = i : n.AMUI = {FastClick: i}), e.exports = i
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {}], 49: [function (t, e) {
        (function (i) {
            "use strict";
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                o = (t("./core"), "undefined" != typeof Element && "ALLOW_KEYBOARD_INPUT" in Element), s = function () {
                    for (var t, e, i = [["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"], ["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror"], ["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitCurrentFullScreenElement", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitfullscreenerror"], ["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror"], ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"]], n = 0, o = i.length, s = {}; o > n; n++) if (t = i[n], t && t[1] in document) {
                        for (n = 0, e = t.length; e > n; n++) s[i[0][n]] = t[n];
                        return s
                    }
                    return !1
                }(), a = {
                    request: function (t) {
                        var e = s.requestFullscreen;
                        t = t || document.documentElement, /5\.1[\.\d]* Safari/.test(navigator.userAgent) ? t[e]() : t[e](o && Element.ALLOW_KEYBOARD_INPUT)
                    }, exit: function () {
                        document[s.exitFullscreen]()
                    }, toggle: function (t) {
                        this.isFullscreen ? this.exit() : this.request(t)
                    }, raw: s
                };
            return s ? (Object.defineProperties(a, {
                isFullscreen: {
                    get: function () {
                        return !!document[s.fullscreenElement]
                    }
                }, element: {
                    enumerable: !0, get: function () {
                        return document[s.fullscreenElement]
                    }
                }, enabled: {
                    enumerable: !0, get: function () {
                        return !!document[s.fullscreenEnabled]
                    }
                }
            }), a.VERSION = "2.0.0", n.AMUI.fullscreen = a, void (e.exports = a)) : void (e.exports = !1)
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 50: [function (t, e) {
        (function (i) {
            "use strict";
            var n = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                o = t("./core");
            o.support.geolocation = window.navigator && window.navigator.geolocation;
            var s = o.support.geolocation, a = function (t) {
                this.options = t || {}
            };
            a.MESSAGES = {
                unsupportedBrowser: "Browser does not support location services",
                permissionDenied: "You have rejected access to your location",
                positionUnavailable: "Unable to determine your location",
                timeout: "Service timeout has been reached"
            }, a.ERROR_CODE = {
                0: "unsupportedBrowser",
                1: "permissionDenied",
                2: "positionUnavailable",
                3: "timeout"
            }, a.prototype.get = function (t) {
                var e = this;
                t = n.extend({}, this.options, t);
                var i = new n.Deferred;
                return s ? this.watchID = s.getCurrentPosition(function (t) {
                    i.resolve.call(e, t)
                }, function (t) {
                    i.reject(a.MESSAGES[a.ERROR_CODE[t.code]])
                }, t) : i.reject(a.MESSAGES.unsupportedBrowser), i.promise()
            }, a.prototype.watch = function (t) {
                if (s && (t = n.extend({}, this.options, t), n.isFunction(t.done))) {
                    this.clearWatch();
                    var e = n.isFunction(t.fail) ? t.fail : null;
                    return this.watchID = s.watchPosition(t.done, e, t), this.watchID
                }
            }, a.prototype.clearWatch = function () {
                s && this.watchID && (s.clearWatch(this.watchID), this.watchID = null)
            }, n.AMUI.Geolocation = a, e.exports = a
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 51: [function (t, e) {
        (function (i) {
            "use strict";

            function n(t, e, i) {
                return setTimeout(c(t, i), e)
            }

            function o(t, e, i) {
                return Array.isArray(t) ? (s(t, i[e], i), !0) : !1
            }

            function s(t, e, i) {
                var n;
                if (t) if (t.forEach) t.forEach(e, i); else if (void 0 !== t.length) for (n = 0; n < t.length;) e.call(i, t[n], n, t), n++; else for (n in t) t.hasOwnProperty(n) && e.call(i, t[n], n, t)
            }

            function a(t, e, i) {
                for (var n = Object.keys(e), o = 0; o < n.length;) (!i || i && void 0 === t[n[o]]) && (t[n[o]] = e[n[o]]), o++;
                return t
            }

            function r(t, e) {
                return a(t, e, !0)
            }

            function l(t, e, i) {
                var n, o = e.prototype;
                n = t.prototype = Object.create(o), n.constructor = t, n._super = o, i && a(n, i)
            }

            function c(t, e) {
                return function () {
                    return t.apply(e, arguments)
                }
            }

            function u(t, e) {
                return typeof t == ue ? t.apply(e ? e[0] || void 0 : void 0, e) : t
            }

            function d(t, e) {
                return void 0 === t ? e : t
            }

            function h(t, e, i) {
                s(v(e), function (e) {
                    t.addEventListener(e, i, !1)
                })
            }

            function p(t, e, i) {
                s(v(e), function (e) {
                    t.removeEventListener(e, i, !1)
                })
            }

            function f(t, e) {
                for (; t;) {
                    if (t == e) return !0;
                    t = t.parentNode
                }
                return !1
            }

            function m(t, e) {
                return t.indexOf(e) > -1
            }

            function v(t) {
                return t.trim().split(/\s+/g)
            }

            function g(t, e, i) {
                if (t.indexOf && !i) return t.indexOf(e);
                for (var n = 0; n < t.length;) {
                    if (i && t[n][i] == e || !i && t[n] === e) return n;
                    n++
                }
                return -1
            }

            function w(t) {
                return Array.prototype.slice.call(t, 0)
            }

            function y(t, e, i) {
                for (var n = [], o = [], s = 0; s < t.length;) {
                    var a = e ? t[s][e] : t[s];
                    g(o, a) < 0 && n.push(t[s]), o[s] = a, s++
                }
                return i && (n = e ? n.sort(function (t, i) {
                    return t[e] > i[e]
                }) : n.sort()), n
            }

            function b(t, e) {
                for (var i, n, o = e[0].toUpperCase() + e.slice(1), s = 0; s < le.length;) {
                    if (i = le[s], n = i ? i + o : e, n in t) return n;
                    s++
                }
                return void 0
            }

            function T() {
                return fe++
            }

            function x(t) {
                var e = t.ownerDocument;
                return e.defaultView || e.parentWindow
            }

            function C(t, e) {
                var i = this;
                this.manager = t, this.callback = e, this.element = t.element, this.target = t.options.inputTarget, this.domHandler = function (e) {
                    u(t.options.enable, [t]) && i.handler(e)
                }, this.init()
            }

            function E(t) {
                var e, i = t.options.inputClass;
                return new (e = i ? i : ge ? _ : we ? U : ve ? W : z)(t, k)
            }

            function k(t, e, i) {
                var n = i.pointers.length, o = i.changedPointers.length, s = e & Ee && n - o === 0,
                    a = e & (Se | Ae) && n - o === 0;
                i.isFirst = !!s, i.isFinal = !!a, s && (t.session = {}), i.eventType = e, S(t, i), t.emit("hammer.input", i), t.recognize(i), t.session.prevInput = i
            }

            function S(t, e) {
                var i = t.session, n = e.pointers, o = n.length;
                i.firstInput || (i.firstInput = F(e)), o > 1 && !i.firstMultiple ? i.firstMultiple = F(e) : 1 === o && (i.firstMultiple = !1);
                var s = i.firstInput, a = i.firstMultiple, r = a ? a.center : s.center, l = e.center = M(n);
                e.timeStamp = pe(), e.deltaTime = e.timeStamp - s.timeStamp, e.angle = $(r, l), e.distance = N(r, l), A(i, e), e.offsetDirection = I(e.deltaX, e.deltaY), e.scale = a ? O(a.pointers, n) : 1, e.rotation = a ? L(a.pointers, n) : 0, D(i, e);
                var c = t.element;
                f(e.srcEvent.target, c) && (c = e.srcEvent.target), e.target = c
            }

            function A(t, e) {
                var i = e.center, n = t.offsetDelta || {}, o = t.prevDelta || {}, s = t.prevInput || {};
                (e.eventType === Ee || s.eventType === Se) && (o = t.prevDelta = {
                    x: s.deltaX || 0,
                    y: s.deltaY || 0
                }, n = t.offsetDelta = {x: i.x, y: i.y}), e.deltaX = o.x + (i.x - n.x), e.deltaY = o.y + (i.y - n.y)
            }

            function D(t, e) {
                var i, n, o, s, a = t.lastInterval || e, r = e.timeStamp - a.timeStamp;
                if (e.eventType != Ae && (r > Ce || void 0 === a.velocity)) {
                    var l = a.deltaX - e.deltaX, c = a.deltaY - e.deltaY, u = P(r, l, c);
                    n = u.x, o = u.y, i = he(u.x) > he(u.y) ? u.x : u.y, s = I(l, c), t.lastInterval = e
                } else i = a.velocity, n = a.velocityX, o = a.velocityY, s = a.direction;
                e.velocity = i, e.velocityX = n, e.velocityY = o, e.direction = s
            }

            function F(t) {
                for (var e = [], i = 0; i < t.pointers.length;) e[i] = {
                    clientX: de(t.pointers[i].clientX),
                    clientY: de(t.pointers[i].clientY)
                }, i++;
                return {timeStamp: pe(), pointers: e, center: M(e), deltaX: t.deltaX, deltaY: t.deltaY}
            }

            function M(t) {
                var e = t.length;
                if (1 === e) return {x: de(t[0].clientX), y: de(t[0].clientY)};
                for (var i = 0, n = 0, o = 0; e > o;) i += t[o].clientX, n += t[o].clientY, o++;
                return {x: de(i / e), y: de(n / e)}
            }

            function P(t, e, i) {
                return {x: e / t || 0, y: i / t || 0}
            }

            function I(t, e) {
                return t === e ? De : he(t) >= he(e) ? t > 0 ? Fe : Me : e > 0 ? Pe : Ie
            }

            function N(t, e, i) {
                i || (i = Oe);
                var n = e[i[0]] - t[i[0]], o = e[i[1]] - t[i[1]];
                return Math.sqrt(n * n + o * o)
            }

            function $(t, e, i) {
                i || (i = Oe);
                var n = e[i[0]] - t[i[0]], o = e[i[1]] - t[i[1]];
                return 180 * Math.atan2(o, n) / Math.PI
            }

            function L(t, e) {
                return $(e[1], e[0], ze) - $(t[1], t[0], ze)
            }

            function O(t, e) {
                return N(e[0], e[1], ze) / N(t[0], t[1], ze)
            }

            function z() {
                this.evEl = je, this.evWin = Re, this.allow = !0, this.pressed = !1, C.apply(this, arguments)
            }

            function _() {
                this.evEl = We, this.evWin = Be, C.apply(this, arguments), this.store = this.manager.session.pointerEvents = []
            }

            function j() {
                this.evTarget = Qe, this.evWin = Ve, this.started = !1, C.apply(this, arguments)
            }

            function R(t, e) {
                var i = w(t.touches), n = w(t.changedTouches);
                return e & (Se | Ae) && (i = y(i.concat(n), "identifier", !0)), [i, n]
            }

            function U() {
                this.evTarget = Ye, this.targetIds = {}, C.apply(this, arguments)
            }

            function q(t, e) {
                var i = w(t.touches), n = this.targetIds;
                if (e & (Ee | ke) && 1 === i.length) return n[i[0].identifier] = !0, [i, i];
                var o, s, a = w(t.changedTouches), r = [], l = this.target;
                if (s = i.filter(function (t) {
                    return f(t.target, l)
                }), e === Ee) for (o = 0; o < s.length;) n[s[o].identifier] = !0, o++;
                for (o = 0; o < a.length;) n[a[o].identifier] && r.push(a[o]), e & (Se | Ae) && delete n[a[o].identifier], o++;
                return r.length ? [y(s.concat(r), "identifier", !0), r] : void 0
            }

            function W() {
                C.apply(this, arguments);
                var t = c(this.handler, this);
                this.touch = new U(this.manager, t), this.mouse = new z(this.manager, t)
            }

            function B(t, e) {
                this.manager = t, this.set(e)
            }

            function H(t) {
                if (m(t, ei)) return ei;
                var e = m(t, ii), i = m(t, ni);
                return e && i ? ii + " " + ni : e || i ? e ? ii : ni : m(t, ti) ? ti : Ke
            }

            function Q(t) {
                this.id = T(), this.manager = null, this.options = r(t || {}, this.defaults), this.options.enable = d(this.options.enable, !0), this.state = oi, this.simultaneous = {}, this.requireFail = []
            }

            function V(t) {
                return t & ci ? "cancel" : t & ri ? "end" : t & ai ? "move" : t & si ? "start" : ""
            }

            function X(t) {
                return t == Ie ? "down" : t == Pe ? "up" : t == Fe ? "left" : t == Me ? "right" : ""
            }

            function Y(t, e) {
                var i = e.manager;
                return i ? i.get(t) : t
            }

            function Z() {
                Q.apply(this, arguments)
            }

            function G() {
                Z.apply(this, arguments), this.pX = null, this.pY = null
            }

            function J() {
                Z.apply(this, arguments)
            }

            function K() {
                Q.apply(this, arguments), this._timer = null, this._input = null
            }

            function te() {
                Z.apply(this, arguments)
            }

            function ee() {
                Z.apply(this, arguments)
            }

            function ie() {
                Q.apply(this, arguments), this.pTime = !1, this.pCenter = !1, this._timer = null, this._input = null, this.count = 0
            }

            function ne(t, e) {
                return e = e || {}, e.recognizers = d(e.recognizers, ne.defaults.preset), new oe(t, e)
            }

            function oe(t, e) {
                e = e || {}, this.options = r(e, ne.defaults), this.options.inputTarget = this.options.inputTarget || t, this.handlers = {}, this.session = {}, this.recognizers = [], this.element = t, this.input = E(this), this.touchAction = new B(this, this.options.touchAction), se(this, !0), s(e.recognizers, function (t) {
                    var e = this.add(new t[0](t[1]));
                    t[2] && e.recognizeWith(t[2]), t[3] && e.requireFailure(t[3])
                }, this)
            }

            function se(t, e) {
                var i = t.element;
                s(t.options.cssProps, function (t, n) {
                    i.style[b(i.style, n)] = e ? t : ""
                })
            }

            function ae(t, e) {
                var i = document.createEvent("Event");
                i.initEvent(t, !0, !0), i.gesture = e, e.target.dispatchEvent(i)
            }

            var re = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                le = (t("./core"), ["", "webkit", "moz", "MS", "ms", "o"]), ce = document.createElement("div"),
                ue = "function", de = Math.round, he = Math.abs, pe = Date.now, fe = 1,
                me = /mobile|tablet|ip(ad|hone|od)|android/i, ve = "ontouchstart" in window,
                ge = void 0 !== b(window, "PointerEvent"), we = ve && me.test(navigator.userAgent), ye = "touch",
                be = "pen", Te = "mouse", xe = "kinect", Ce = 25, Ee = 1, ke = 2, Se = 4, Ae = 8, De = 1, Fe = 2,
                Me = 4, Pe = 8, Ie = 16, Ne = Fe | Me, $e = Pe | Ie, Le = Ne | $e, Oe = ["x", "y"],
                ze = ["clientX", "clientY"];
            C.prototype = {
                handler: function () {
                }, init: function () {
                    this.evEl && h(this.element, this.evEl, this.domHandler), this.evTarget && h(this.target, this.evTarget, this.domHandler), this.evWin && h(x(this.element), this.evWin, this.domHandler)
                }, destroy: function () {
                    this.evEl && p(this.element, this.evEl, this.domHandler), this.evTarget && p(this.target, this.evTarget, this.domHandler), this.evWin && p(x(this.element), this.evWin, this.domHandler)
                }
            };
            var _e = {mousedown: Ee, mousemove: ke, mouseup: Se}, je = "mousedown", Re = "mousemove mouseup";
            l(z, C, {
                handler: function (t) {
                    var e = _e[t.type];
                    e & Ee && 0 === t.button && (this.pressed = !0), e & ke && 1 !== t.which && (e = Se), this.pressed && this.allow && (e & Se && (this.pressed = !1), this.callback(this.manager, e, {
                        pointers: [t],
                        changedPointers: [t],
                        pointerType: Te,
                        srcEvent: t
                    }))
                }
            });
            var Ue = {pointerdown: Ee, pointermove: ke, pointerup: Se, pointercancel: Ae, pointerout: Ae},
                qe = {2: ye, 3: be, 4: Te, 5: xe}, We = "pointerdown", Be = "pointermove pointerup pointercancel";
            window.MSPointerEvent && (We = "MSPointerDown", Be = "MSPointerMove MSPointerUp MSPointerCancel"), l(_, C, {
                handler: function (t) {
                    var e = this.store, i = !1, n = t.type.toLowerCase().replace("ms", ""), o = Ue[n],
                        s = qe[t.pointerType] || t.pointerType, a = s == ye, r = g(e, t.pointerId, "pointerId");
                    o & Ee && (0 === t.button || a) ? 0 > r && (e.push(t), r = e.length - 1) : o & (Se | Ae) && (i = !0), 0 > r || (e[r] = t, this.callback(this.manager, o, {
                        pointers: e,
                        changedPointers: [t],
                        pointerType: s,
                        srcEvent: t
                    }), i && e.splice(r, 1))
                }
            });
            var He = {touchstart: Ee, touchmove: ke, touchend: Se, touchcancel: Ae}, Qe = "touchstart",
                Ve = "touchstart touchmove touchend touchcancel";
            l(j, C, {
                handler: function (t) {
                    var e = He[t.type];
                    if (e === Ee && (this.started = !0), this.started) {
                        var i = R.call(this, t, e);
                        e & (Se | Ae) && i[0].length - i[1].length === 0 && (this.started = !1), this.callback(this.manager, e, {
                            pointers: i[0],
                            changedPointers: i[1],
                            pointerType: ye,
                            srcEvent: t
                        })
                    }
                }
            });
            var Xe = {touchstart: Ee, touchmove: ke, touchend: Se, touchcancel: Ae},
                Ye = "touchstart touchmove touchend touchcancel";
            l(U, C, {
                handler: function (t) {
                    var e = Xe[t.type], i = q.call(this, t, e);
                    i && this.callback(this.manager, e, {
                        pointers: i[0],
                        changedPointers: i[1],
                        pointerType: ye,
                        srcEvent: t
                    })
                }
            }), l(W, C, {
                handler: function (t, e, i) {
                    var n = i.pointerType == ye, o = i.pointerType == Te;
                    if (n) this.mouse.allow = !1; else if (o && !this.mouse.allow) return;
                    e & (Se | Ae) && (this.mouse.allow = !0), this.callback(t, e, i)
                }, destroy: function () {
                    this.touch.destroy(), this.mouse.destroy()
                }
            });
            var Ze = b(ce.style, "touchAction"), Ge = void 0 !== Ze, Je = "compute", Ke = "auto", ti = "manipulation",
                ei = "none", ii = "pan-x", ni = "pan-y";
            B.prototype = {
                set: function (t) {
                    t == Je && (t = this.compute()), Ge && (this.manager.element.style[Ze] = t), this.actions = t.toLowerCase().trim()
                }, update: function () {
                    this.set(this.manager.options.touchAction)
                }, compute: function () {
                    var t = [];
                    return s(this.manager.recognizers, function (e) {
                        u(e.options.enable, [e]) && (t = t.concat(e.getTouchAction()))
                    }), H(t.join(" "))
                }, preventDefaults: function (t) {
                    if (!Ge) {
                        var e = t.srcEvent, i = t.offsetDirection;
                        if (this.manager.session.prevented) return void e.preventDefault();
                        var n = this.actions, o = m(n, ei), s = m(n, ni), a = m(n, ii);
                        return o || s && i & Ne || a && i & $e ? this.preventSrc(e) : void 0
                    }
                }, preventSrc: function (t) {
                    this.manager.session.prevented = !0, t.preventDefault()
                }
            };
            var oi = 1, si = 2, ai = 4, ri = 8, li = ri, ci = 16, ui = 32;
            Q.prototype = {
                defaults: {}, set: function (t) {
                    return a(this.options, t), this.manager && this.manager.touchAction.update(), this
                }, recognizeWith: function (t) {
                    if (o(t, "recognizeWith", this)) return this;
                    var e = this.simultaneous;
                    return t = Y(t, this), e[t.id] || (e[t.id] = t, t.recognizeWith(this)), this
                }, dropRecognizeWith: function (t) {
                    return o(t, "dropRecognizeWith", this) ? this : (t = Y(t, this), delete this.simultaneous[t.id], this)
                }, requireFailure: function (t) {
                    if (o(t, "requireFailure", this)) return this;
                    var e = this.requireFail;
                    return t = Y(t, this), -1 === g(e, t) && (e.push(t), t.requireFailure(this)), this
                }, dropRequireFailure: function (t) {
                    if (o(t, "dropRequireFailure", this)) return this;
                    t = Y(t, this);
                    var e = g(this.requireFail, t);
                    return e > -1 && this.requireFail.splice(e, 1), this
                }, hasRequireFailures: function () {
                    return this.requireFail.length > 0
                }, canRecognizeWith: function (t) {
                    return !!this.simultaneous[t.id]
                }, emit: function (t) {
                    function e(e) {
                        i.manager.emit(i.options.event + (e ? V(n) : ""), t)
                    }

                    var i = this, n = this.state;
                    ri > n && e(!0), e(), n >= ri && e(!0)
                }, tryEmit: function (t) {
                    return this.canEmit() ? this.emit(t) : void (this.state = ui)
                }, canEmit: function () {
                    for (var t = 0; t < this.requireFail.length;) {
                        if (!(this.requireFail[t].state & (ui | oi))) return !1;
                        t++
                    }
                    return !0
                }, recognize: function (t) {
                    var e = a({}, t);
                    return u(this.options.enable, [this, e]) ? (this.state & (li | ci | ui) && (this.state = oi), this.state = this.process(e), void (this.state & (si | ai | ri | ci) && this.tryEmit(e))) : (this.reset(), void (this.state = ui))
                }, process: function () {
                }, getTouchAction: function () {
                }, reset: function () {
                }
            }, l(Z, Q, {
                defaults: {pointers: 1}, attrTest: function (t) {
                    var e = this.options.pointers;
                    return 0 === e || t.pointers.length === e
                }, process: function (t) {
                    var e = this.state, i = t.eventType, n = e & (si | ai), o = this.attrTest(t);
                    return n && (i & Ae || !o) ? e | ci : n || o ? i & Se ? e | ri : e & si ? e | ai : si : ui
                }
            }), l(G, Z, {
                defaults: {event: "pan", threshold: 10, pointers: 1, direction: Le},
                getTouchAction: function () {
                    var t = this.options.direction, e = [];
                    return t & Ne && e.push(ni), t & $e && e.push(ii), e
                },
                directionTest: function (t) {
                    var e = this.options, i = !0, n = t.distance, o = t.direction, s = t.deltaX, a = t.deltaY;
                    return o & e.direction || (e.direction & Ne ? (o = 0 === s ? De : 0 > s ? Fe : Me, i = s != this.pX, n = Math.abs(t.deltaX)) : (o = 0 === a ? De : 0 > a ? Pe : Ie, i = a != this.pY, n = Math.abs(t.deltaY))), t.direction = o, i && n > e.threshold && o & e.direction
                },
                attrTest: function (t) {
                    return Z.prototype.attrTest.call(this, t) && (this.state & si || !(this.state & si) && this.directionTest(t))
                },
                emit: function (t) {
                    this.pX = t.deltaX, this.pY = t.deltaY;
                    var e = X(t.direction);
                    e && this.manager.emit(this.options.event + e, t), this._super.emit.call(this, t)
                }
            }), l(J, Z, {
                defaults: {event: "pinch", threshold: 0, pointers: 2}, getTouchAction: function () {
                    return [ei]
                }, attrTest: function (t) {
                    return this._super.attrTest.call(this, t) && (Math.abs(t.scale - 1) > this.options.threshold || this.state & si)
                }, emit: function (t) {
                    if (this._super.emit.call(this, t), 1 !== t.scale) {
                        var e = t.scale < 1 ? "in" : "out";
                        this.manager.emit(this.options.event + e, t)
                    }
                }
            }), l(K, Q, {
                defaults: {event: "press", pointers: 1, time: 500, threshold: 5}, getTouchAction: function () {
                    return [Ke]
                }, process: function (t) {
                    var e = this.options, i = t.pointers.length === e.pointers, o = t.distance < e.threshold,
                        s = t.deltaTime > e.time;
                    if (this._input = t, !o || !i || t.eventType & (Se | Ae) && !s) this.reset(); else if (t.eventType & Ee) this.reset(), this._timer = n(function () {
                        this.state = li, this.tryEmit()
                    }, e.time, this); else if (t.eventType & Se) return li;
                    return ui
                }, reset: function () {
                    clearTimeout(this._timer)
                }, emit: function (t) {
                    this.state === li && (t && t.eventType & Se ? this.manager.emit(this.options.event + "up", t) : (this._input.timeStamp = pe(), this.manager.emit(this.options.event, this._input)))
                }
            }), l(te, Z, {
                defaults: {event: "rotate", threshold: 0, pointers: 2}, getTouchAction: function () {
                    return [ei]
                }, attrTest: function (t) {
                    return this._super.attrTest.call(this, t) && (Math.abs(t.rotation) > this.options.threshold || this.state & si)
                }
            }), l(ee, Z, {
                defaults: {event: "swipe", threshold: 10, velocity: .65, direction: Ne | $e, pointers: 1},
                getTouchAction: function () {
                    return G.prototype.getTouchAction.call(this)
                },
                attrTest: function (t) {
                    var e, i = this.options.direction;
                    return i & (Ne | $e) ? e = t.velocity : i & Ne ? e = t.velocityX : i & $e && (e = t.velocityY), this._super.attrTest.call(this, t) && i & t.direction && t.distance > this.options.threshold && he(e) > this.options.velocity && t.eventType & Se
                },
                emit: function (t) {
                    var e = X(t.direction);
                    e && this.manager.emit(this.options.event + e, t), this.manager.emit(this.options.event, t)
                }
            }), l(ie, Q, {
                defaults: {
                    event: "tap",
                    pointers: 1,
                    taps: 1,
                    interval: 300,
                    time: 250,
                    threshold: 2,
                    posThreshold: 10
                }, getTouchAction: function () {
                    return [ti]
                }, process: function (t) {
                    var e = this.options, i = t.pointers.length === e.pointers, o = t.distance < e.threshold,
                        s = t.deltaTime < e.time;
                    if (this.reset(), t.eventType & Ee && 0 === this.count) return this.failTimeout();
                    if (o && s && i) {
                        if (t.eventType != Se) return this.failTimeout();
                        var a = this.pTime ? t.timeStamp - this.pTime < e.interval : !0,
                            r = !this.pCenter || N(this.pCenter, t.center) < e.posThreshold;
                        this.pTime = t.timeStamp, this.pCenter = t.center, r && a ? this.count += 1 : this.count = 1, this._input = t;
                        var l = this.count % e.taps;
                        if (0 === l) return this.hasRequireFailures() ? (this._timer = n(function () {
                            this.state = li, this.tryEmit()
                        }, e.interval, this), si) : li
                    }
                    return ui
                }, failTimeout: function () {
                    return this._timer = n(function () {
                        this.state = ui
                    }, this.options.interval, this), ui
                }, reset: function () {
                    clearTimeout(this._timer)
                }, emit: function () {
                    this.state == li && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input))
                }
            }), ne.VERSION = "2.0.4", ne.defaults = {
                domEvents: !1,
                touchAction: Je,
                enable: !0,
                inputTarget: null,
                inputClass: null,
                preset: [[te, {enable: !1}], [J, {enable: !1}, ["rotate"]], [ee, {direction: Ne}], [G, {direction: Ne}, ["swipe"]], [ie], [ie, {
                    event: "doubletap",
                    taps: 2
                }, ["tap"]], [K]],
                cssProps: {
                    userSelect: "none",
                    touchSelect: "none",
                    touchCallout: "none",
                    contentZooming: "none",
                    userDrag: "none",
                    tapHighlightColor: "rgba(0,0,0,0)"
                }
            };
            var di = 1, hi = 2;
            oe.prototype = {
                set: function (t) {
                    return a(this.options, t), t.touchAction && this.touchAction.update(), t.inputTarget && (this.input.destroy(), this.input.target = t.inputTarget, this.input.init()), this
                }, stop: function (t) {
                    this.session.stopped = t ? hi : di
                }, recognize: function (t) {
                    var e = this.session;
                    if (!e.stopped) {
                        this.touchAction.preventDefaults(t);
                        var i, n = this.recognizers, o = e.curRecognizer;
                        (!o || o && o.state & li) && (o = e.curRecognizer = null);
                        for (var s = 0; s < n.length;) i = n[s], e.stopped === hi || o && i != o && !i.canRecognizeWith(o) ? i.reset() : i.recognize(t), !o && i.state & (si | ai | ri) && (o = e.curRecognizer = i), s++
                    }
                }, get: function (t) {
                    if (t instanceof Q) return t;
                    for (var e = this.recognizers, i = 0; i < e.length; i++) if (e[i].options.event == t) return e[i];
                    return null
                }, add: function (t) {
                    if (o(t, "add", this)) return this;
                    var e = this.get(t.options.event);
                    return e && this.remove(e), this.recognizers.push(t), t.manager = this, this.touchAction.update(), t
                }, remove: function (t) {
                    if (o(t, "remove", this)) return this;
                    var e = this.recognizers;
                    return t = this.get(t), e.splice(g(e, t), 1), this.touchAction.update(), this
                }, on: function (t, e) {
                    var i = this.handlers;
                    return s(v(t), function (t) {
                        i[t] = i[t] || [], i[t].push(e)
                    }), this
                }, off: function (t, e) {
                    var i = this.handlers;
                    return s(v(t), function (t) {
                        e ? i[t].splice(g(i[t], e), 1) : delete i[t]
                    }), this
                }, emit: function (t, e) {
                    this.options.domEvents && ae(t, e);
                    var i = this.handlers[t] && this.handlers[t].slice();
                    if (i && i.length) {
                        e.type = t, e.preventDefault = function () {
                            e.srcEvent.preventDefault()
                        };
                        for (var n = 0; n < i.length;) i[n](e), n++
                    }
                }, destroy: function () {
                    this.element && se(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null
                }
            }, a(ne, {
                INPUT_START: Ee,
                INPUT_MOVE: ke,
                INPUT_END: Se,
                INPUT_CANCEL: Ae,
                STATE_POSSIBLE: oi,
                STATE_BEGAN: si,
                STATE_CHANGED: ai,
                STATE_ENDED: ri,
                STATE_RECOGNIZED: li,
                STATE_CANCELLED: ci,
                STATE_FAILED: ui,
                DIRECTION_NONE: De,
                DIRECTION_LEFT: Fe,
                DIRECTION_RIGHT: Me,
                DIRECTION_UP: Pe,
                DIRECTION_DOWN: Ie,
                DIRECTION_HORIZONTAL: Ne,
                DIRECTION_VERTICAL: $e,
                DIRECTION_ALL: Le,
                Manager: oe,
                Input: C,
                TouchAction: B,
                TouchInput: U,
                MouseInput: z,
                PointerEventInput: _,
                TouchMouseInput: W,
                SingleTouchInput: j,
                Recognizer: Q,
                AttrRecognizer: Z,
                Tap: ie,
                Pan: G,
                Swipe: ee,
                Pinch: J,
                Rotate: te,
                Press: K,
                on: h,
                off: p,
                each: s,
                merge: r,
                extend: a,
                inherit: l,
                bindFn: c,
                prefixed: b
            }), function (t, e) {
                function i(i, n) {
                    var o = t(i);
                    o.data("hammer") || o.data("hammer", new e(o[0], n))
                }

                t.fn.hammer = function (t) {
                    return this.each(function () {
                        i(this, t)
                    })
                }, e.Manager.prototype.emit = function (e) {
                    return function (i, n) {
                        e.call(this, i, n), t(this.element).trigger({type: i, gesture: n})
                    }
                }(e.Manager.prototype.emit)
            }(re, ne), re.AMUI.Hammer = ne, e.exports = ne
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 52: [function (t, e) {
        (function (i) {
            function n(t) {
                return 128 > t ? [t] : 2048 > t ? (c0 = 192 + (t >> 6), c1 = 128 + (63 & t), [c0, c1]) : (c0 = 224 + (t >> 12), c1 = 128 + (t >> 6 & 63), c2 = 128 + (63 & t), [c0, c1, c2])
            }

            function o(t) {
                for (var e = [], i = 0; i < t.length; i++) for (var o = t.charCodeAt(i), s = n(o), a = 0; a < s.length; a++) e.push(s[a]);
                return e
            }

            function s(t, e) {
                this.typeNumber = -1, this.errorCorrectLevel = e, this.modules = null, this.moduleCount = 0, this.dataCache = null, this.rsBlocks = null, this.totalDataCount = -1, this.data = t, this.utf8bytes = o(t), this.make()

            }

            function a(t, e) {
                if (void 0 == t.length) throw new Error(t.length + "/" + e);
                for (var i = 0; i < t.length && 0 == t[i];) i++;
                this.num = new Array(t.length - i + e);
                for (var n = 0; n < t.length - i; n++) this.num[n] = t[n + i]
            }

            function r() {
                this.buffer = [], this.length = 0
            }

            function n(t) {
                return 128 > t ? [t] : 2048 > t ? (c0 = 192 + (t >> 6), c1 = 128 + (63 & t), [c0, c1]) : (c0 = 224 + (t >> 12), c1 = 128 + (t >> 6 & 63), c2 = 128 + (63 & t), [c0, c1, c2])
            }

            function o(t) {
                for (var e = [], i = 0; i < t.length; i++) for (var o = t.charCodeAt(i), s = n(o), a = 0; a < s.length; a++) e.push(s[a]);
                return e
            }

            function s(t, e) {
                this.typeNumber = -1, this.errorCorrectLevel = e, this.modules = null, this.moduleCount = 0, this.dataCache = null, this.rsBlocks = null, this.totalDataCount = -1, this.data = t, this.utf8bytes = o(t), this.make()
            }

            function a(t, e) {
                if (void 0 == t.length) throw new Error(t.length + "/" + e);
                for (var i = 0; i < t.length && 0 == t[i];) i++;
                this.num = new Array(t.length - i + e);
                for (var n = 0; n < t.length - i; n++) this.num[n] = t[n + i]
            }

            function r() {
                this.buffer = [], this.length = 0
            }

            var c = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core");
            var u = [], d = function (t) {
                "string" == typeof t && (t = {text: t}), this.options = c.extend({}, {
                    text: "",
                    render: "",
                    width: 256,
                    height: 256,
                    correctLevel: 3,
                    background: "#ffffff",
                    foreground: "#000000"
                }, t);
                for (var e = null, i = 0, n = u.length; n > i; i++) if (u[i].text == this.options.text && u[i].text.correctLevel == this.options.correctLevel) {
                    e = u[i].obj;
                    break
                }
                if (i == n && (e = new s(this.options.text, this.options.correctLevel), u.push({
                    text: this.options.text,
                    correctLevel: this.options.correctLevel,
                    obj: e
                })), this.options.render) switch (this.options.render) {
                    case"canvas":
                        return this.createCanvas(e);
                    case"table":
                        return this.createTable(e);
                    case"svg":
                        return this.createSVG(e);
                    default:
                        return this.createDefault(e)
                }
                return this.createDefault(e)
            };
            d.prototype.createDefault = function (t) {
                var e = document.createElement("canvas");
                return e.getContext ? this.createCanvas(t) : document.createElementNS && document.createElementNS(SVG_NS, "svg").createSVGRect ? this.createSVG(t) : this.createTable(t)
            }, d.prototype.createCanvas = function (t) {
                var e = document.createElement("canvas");
                e.width = this.options.width, e.height = this.options.height;
                for (var i = e.getContext("2d"), n = (this.options.width / t.getModuleCount()).toPrecision(4), o = this.options.height / t.getModuleCount().toPrecision(4), s = 0; s < t.getModuleCount(); s++) for (var a = 0; a < t.getModuleCount(); a++) {
                    i.fillStyle = t.modules[s][a] ? this.options.foreground : this.options.background;
                    var r = Math.ceil((a + 1) * n) - Math.floor(a * n), l = Math.ceil((s + 1) * n) - Math.floor(s * n);
                    i.fillRect(Math.round(a * n), Math.round(s * o), r, l)
                }
                return e
            }, d.prototype.createTable = function (t) {
                var e = [];
                e.push('<table style="border:0px; margin:0px; padding:0px; border-collapse:collapse; background-color: ' + this.options.background + ';">');
                var i = -1, n = -1, o = -1, s = -1;
                i = o = Math.floor(this.options.width / t.getModuleCount()), n = s = Math.floor(this.options.height / t.getModuleCount()), 0 >= o && (i = t.getModuleCount() < 80 ? 2 : 1), 0 >= s && (n = t.getModuleCount() < 80 ? 2 : 1), foreTd = '<td style="border:0px; margin:0px; padding:0px; width:' + i + "px; background-color: " + this.options.foreground + '"></td>', backTd = '<td style="border:0px; margin:0px; padding:0px; width:' + i + "px; background-color: " + this.options.background + '"></td>', l = t.getModuleCount();
                for (var a = 0; l > a; a++) {
                    e.push('<tr style="border:0px; margin:0px; padding:0px; height: ' + n + 'px">');
                    for (var r = 0; l > r; r++) e.push(t.modules[a][r] ? foreTd : backTd);
                    e.push("</tr>")
                }
                e.push("</table>");
                var c = document.createElement("span");
                return c.innerHTML = e.join(""), c.firstChild
            }, d.prototype.createSVG = function (t) {
                for (var e, i, n, o, s = t.getModuleCount(), a = this.options.height / this.options.width, r = '<svg xmlns="http://www.w3.org/2000/svg" width="' + this.options.width + 'px" height="' + this.options.height + 'px" viewbox="0 0 ' + 10 * s + " " + 10 * s * a + '">', l = "<path ", u = ' style="stroke-width:0.5;stroke:' + this.options.foreground + ";fill:" + this.options.foreground + ';"></path>', d = ' style="stroke-width:0.5;stroke:' + this.options.background + ";fill:" + this.options.background + ';"></path>', h = 0; s > h; h++) for (var p = 0; s > p; p++) e = 10 * p, n = 10 * h * a, i = 10 * (p + 1), o = 10 * (h + 1) * a, r += l + 'd="M ' + e + "," + n + " L " + i + "," + n + " L " + i + "," + o + " L " + e + "," + o + ' Z"', r += t.modules[h][p] ? u : d;
                return r += "</svg>", c(r)[0]
            }, s.prototype = {
                constructor: s, getModuleCount: function () {
                    return this.moduleCount
                }, make: function () {
                    this.getRightType(), this.dataCache = this.createData(), this.createQrcode()
                }, makeImpl: function (t) {
                    this.moduleCount = 4 * this.typeNumber + 17, this.modules = new Array(this.moduleCount);
                    for (var e = 0; e < this.moduleCount; e++) this.modules[e] = new Array(this.moduleCount);
                    this.setupPositionProbePattern(0, 0), this.setupPositionProbePattern(this.moduleCount - 7, 0), this.setupPositionProbePattern(0, this.moduleCount - 7), this.setupPositionAdjustPattern(), this.setupTimingPattern(), this.setupTypeInfo(!0, t), this.typeNumber >= 7 && this.setupTypeNumber(!0), this.mapData(this.dataCache, t)
                }, setupPositionProbePattern: function (t, e) {
                    for (var i = -1; 7 >= i; i++) if (!(-1 >= t + i || this.moduleCount <= t + i)) for (var n = -1; 7 >= n; n++) -1 >= e + n || this.moduleCount <= e + n || (this.modules[t + i][e + n] = i >= 0 && 6 >= i && (0 == n || 6 == n) || n >= 0 && 6 >= n && (0 == i || 6 == i) || i >= 2 && 4 >= i && n >= 2 && 4 >= n ? !0 : !1)
                }, createQrcode: function () {
                    for (var t = 0, e = 0, i = null, n = 0; 8 > n; n++) {
                        this.makeImpl(n);
                        var o = f.getLostPoint(this);
                        (0 == n || t > o) && (t = o, e = n, i = this.modules)
                    }
                    this.modules = i, this.setupTypeInfo(!1, e), this.typeNumber >= 7 && this.setupTypeNumber(!1)
                }, setupTimingPattern: function () {
                    for (var t = 8; t < this.moduleCount - 8; t++) null == this.modules[t][6] && (this.modules[t][6] = t % 2 == 0, null == this.modules[6][t] && (this.modules[6][t] = t % 2 == 0))
                }, setupPositionAdjustPattern: function () {
                    for (var t = f.getPatternPosition(this.typeNumber), e = 0; e < t.length; e++) for (var i = 0; i < t.length; i++) {
                        var n = t[e], o = t[i];
                        if (null == this.modules[n][o]) for (var s = -2; 2 >= s; s++) for (var a = -2; 2 >= a; a++) this.modules[n + s][o + a] = -2 == s || 2 == s || -2 == a || 2 == a || 0 == s && 0 == a ? !0 : !1
                    }
                }, setupTypeNumber: function (t) {
                    for (var e = f.getBCHTypeNumber(this.typeNumber), i = 0; 18 > i; i++) {
                        var n = !t && 1 == (e >> i & 1);
                        this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = n, this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = n
                    }
                }, setupTypeInfo: function (t, e) {
                    for (var i = h[this.errorCorrectLevel] << 3 | e, n = f.getBCHTypeInfo(i), o = 0; 15 > o; o++) {
                        var s = !t && 1 == (n >> o & 1);
                        6 > o ? this.modules[o][8] = s : 8 > o ? this.modules[o + 1][8] = s : this.modules[this.moduleCount - 15 + o][8] = s;
                        var s = !t && 1 == (n >> o & 1);
                        8 > o ? this.modules[8][this.moduleCount - o - 1] = s : 9 > o ? this.modules[8][15 - o - 1 + 1] = s : this.modules[8][15 - o - 1] = s
                    }
                    this.modules[this.moduleCount - 8][8] = !t
                }, createData: function () {
                    var t = new r, e = this.typeNumber > 9 ? 16 : 8;
                    t.put(4, 4), t.put(this.utf8bytes.length, e);
                    for (var i = 0, n = this.utf8bytes.length; n > i; i++) t.put(this.utf8bytes[i], 8);
                    for (t.length + 4 <= 8 * this.totalDataCount && t.put(0, 4); t.length % 8 != 0;) t.putBit(!1);
                    for (; ;) {
                        if (t.length >= 8 * this.totalDataCount) break;
                        if (t.put(s.PAD0, 8), t.length >= 8 * this.totalDataCount) break;
                        t.put(s.PAD1, 8)
                    }
                    return this.createBytes(t)
                }, createBytes: function (t) {
                    for (var e = 0, i = 0, n = 0, o = this.rsBlock.length / 3, s = [], r = 0; o > r; r++) for (var l = this.rsBlock[3 * r + 0], c = this.rsBlock[3 * r + 1], u = this.rsBlock[3 * r + 2], d = 0; l > d; d++) s.push([u, c]);
                    for (var h = new Array(s.length), p = new Array(s.length), m = 0; m < s.length; m++) {
                        var v = s[m][0], g = s[m][1] - v;
                        i = Math.max(i, v), n = Math.max(n, g), h[m] = new Array(v);
                        for (var r = 0; r < h[m].length; r++) h[m][r] = 255 & t.buffer[r + e];
                        e += v;
                        var w = f.getErrorCorrectPolynomial(g), y = new a(h[m], w.getLength() - 1), b = y.mod(w);
                        p[m] = new Array(w.getLength() - 1);
                        for (var r = 0; r < p[m].length; r++) {
                            var T = r + b.getLength() - p[m].length;
                            p[m][r] = T >= 0 ? b.get(T) : 0
                        }
                    }
                    for (var x = new Array(this.totalDataCount), C = 0, r = 0; i > r; r++) for (var m = 0; m < s.length; m++) r < h[m].length && (x[C++] = h[m][r]);
                    for (var r = 0; n > r; r++) for (var m = 0; m < s.length; m++) r < p[m].length && (x[C++] = p[m][r]);
                    return x
                }, mapData: function (t, e) {
                    for (var i = -1, n = this.moduleCount - 1, o = 7, s = 0, a = this.moduleCount - 1; a > 0; a -= 2) for (6 == a && a--; ;) {
                        for (var r = 0; 2 > r; r++) if (null == this.modules[n][a - r]) {
                            var l = !1;
                            s < t.length && (l = 1 == (t[s] >>> o & 1));
                            var c = f.getMask(e, n, a - r);
                            c && (l = !l), this.modules[n][a - r] = l, o--, -1 == o && (s++, o = 7)
                        }
                        if (n += i, 0 > n || this.moduleCount <= n) {
                            n -= i, i = -i;
                            break
                        }
                    }
                }
            }, s.PAD0 = 236, s.PAD1 = 17;
            for (var h = [1, 0, 3, 2], p = {
                PATTERN000: 0,
                PATTERN001: 1,
                PATTERN010: 2,
                PATTERN011: 3,
                PATTERN100: 4,
                PATTERN101: 5,
                PATTERN110: 6,
                PATTERN111: 7
            }, f = {
                PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]],
                G15: 1335,
                G18: 7973,
                G15_MASK: 21522,
                getBCHTypeInfo: function (t) {
                    for (var e = t << 10; f.getBCHDigit(e) - f.getBCHDigit(f.G15) >= 0;) e ^= f.G15 << f.getBCHDigit(e) - f.getBCHDigit(f.G15);
                    return (t << 10 | e) ^ f.G15_MASK
                },
                getBCHTypeNumber: function (t) {
                    for (var e = t << 12; f.getBCHDigit(e) - f.getBCHDigit(f.G18) >= 0;) e ^= f.G18 << f.getBCHDigit(e) - f.getBCHDigit(f.G18);
                    return t << 12 | e
                },
                getBCHDigit: function (t) {
                    for (var e = 0; 0 != t;) e++, t >>>= 1;
                    return e
                },
                getPatternPosition: function (t) {
                    return f.PATTERN_POSITION_TABLE[t - 1]
                },
                getMask: function (t, e, i) {
                    switch (t) {
                        case p.PATTERN000:
                            return (e + i) % 2 == 0;
                        case p.PATTERN001:
                            return e % 2 == 0;
                        case p.PATTERN010:
                            return i % 3 == 0;
                        case p.PATTERN011:
                            return (e + i) % 3 == 0;
                        case p.PATTERN100:
                            return (Math.floor(e / 2) + Math.floor(i / 3)) % 2 == 0;
                        case p.PATTERN101:
                            return e * i % 2 + e * i % 3 == 0;
                        case p.PATTERN110:
                            return (e * i % 2 + e * i % 3) % 2 == 0;
                        case p.PATTERN111:
                            return (e * i % 3 + (e + i) % 2) % 2 == 0;
                        default:
                            throw new Error("bad maskPattern:" + t)
                    }
                },
                getErrorCorrectPolynomial: function (t) {
                    for (var e = new a([1], 0), i = 0; t > i; i++) e = e.multiply(new a([1, m.gexp(i)], 0));
                    return e
                },
                getLostPoint: function (t) {
                    for (var e = t.getModuleCount(), i = 0, n = 0, o = 0; e > o; o++) for (var s = 0, a = t.modules[o][0], r = 0; e > r; r++) {
                        var l = t.modules[o][r];
                        if (e - 6 > r && l && !t.modules[o][r + 1] && t.modules[o][r + 2] && t.modules[o][r + 3] && t.modules[o][r + 4] && !t.modules[o][r + 5] && t.modules[o][r + 6] && (e - 10 > r ? t.modules[o][r + 7] && t.modules[o][r + 8] && t.modules[o][r + 9] && t.modules[o][r + 10] && (i += 40) : r > 3 && t.modules[o][r - 1] && t.modules[o][r - 2] && t.modules[o][r - 3] && t.modules[o][r - 4] && (i += 40)), e - 1 > o && e - 1 > r) {
                            var c = 0;
                            l && c++, t.modules[o + 1][r] && c++, t.modules[o][r + 1] && c++, t.modules[o + 1][r + 1] && c++, (0 == c || 4 == c) && (i += 3)
                        }
                        a ^ l ? s++ : (a = l, s >= 5 && (i += 3 + s - 5), s = 1), l && n++
                    }
                    for (var r = 0; e > r; r++) for (var s = 0, a = t.modules[0][r], o = 0; e > o; o++) {
                        var l = t.modules[o][r];
                        e - 6 > o && l && !t.modules[o + 1][r] && t.modules[o + 2][r] && t.modules[o + 3][r] && t.modules[o + 4][r] && !t.modules[o + 5][r] && t.modules[o + 6][r] && (e - 10 > o ? t.modules[o + 7][r] && t.modules[o + 8][r] && t.modules[o + 9][r] && t.modules[o + 10][r] && (i += 40) : o > 3 && t.modules[o - 1][r] && t.modules[o - 2][r] && t.modules[o - 3][r] && t.modules[o - 4][r] && (i += 40)), a ^ l ? s++ : (a = l, s >= 5 && (i += 3 + s - 5), s = 1)
                    }
                    var u = Math.abs(100 * n / e / e - 50) / 5;
                    return i += 10 * u
                }
            }, m = {
                glog: function (t) {
                    if (1 > t) throw new Error("glog(" + t + ")");
                    return m.LOG_TABLE[t]
                }, gexp: function (t) {
                    for (; 0 > t;) t += 255;
                    for (; t >= 256;) t -= 255;
                    return m.EXP_TABLE[t]
                }, EXP_TABLE: new Array(256), LOG_TABLE: new Array(256)
            }, v = 0; 8 > v; v++) m.EXP_TABLE[v] = 1 << v;
            for (var v = 8; 256 > v; v++) m.EXP_TABLE[v] = m.EXP_TABLE[v - 4] ^ m.EXP_TABLE[v - 5] ^ m.EXP_TABLE[v - 6] ^ m.EXP_TABLE[v - 8];
            for (var v = 0; 255 > v; v++) m.LOG_TABLE[m.EXP_TABLE[v]] = v;
            a.prototype = {
                get: function (t) {
                    return this.num[t]
                }, getLength: function () {
                    return this.num.length
                }, multiply: function (t) {
                    for (var e = new Array(this.getLength() + t.getLength() - 1), i = 0; i < this.getLength(); i++) for (var n = 0; n < t.getLength(); n++) e[i + n] ^= m.gexp(m.glog(this.get(i)) + m.glog(t.get(n)));
                    return new a(e, 0)
                }, mod: function (t) {
                    var e = this.getLength(), i = t.getLength();
                    if (0 > e - i) return this;
                    for (var n = new Array(e), o = 0; e > o; o++) n[o] = this.get(o);
                    for (; n.length >= i;) {
                        for (var s = m.glog(n[0]) - m.glog(t.get(0)), o = 0; o < t.getLength(); o++) n[o] ^= m.gexp(m.glog(t.get(o)) + s);
                        for (; 0 == n[0];) n.shift()
                    }
                    return new a(n, 0)
                }
            };
            var g = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]];
            s.prototype.getRightType = function () {
                for (var t = 1; 41 > t; t++) {
                    var e = g[4 * (t - 1) + this.errorCorrectLevel];
                    if (void 0 == e) throw new Error("bad rs block @ typeNumber:" + t + "/errorCorrectLevel:" + this.errorCorrectLevel);
                    for (var i = e.length / 3, n = 0, o = 0; i > o; o++) {
                        var s = e[3 * o + 0], a = e[3 * o + 2];
                        n += a * s
                    }
                    var r = t > 9 ? 2 : 1;
                    if (this.utf8bytes.length + r < n || 40 == t) {
                        this.typeNumber = t, this.rsBlock = e, this.totalDataCount = n;
                        break
                    }
                }
            }, r.prototype = {
                get: function (t) {
                    var e = Math.floor(t / 8);
                    return this.buffer[e] >>> 7 - t % 8 & 1
                }, put: function (t, e) {
                    for (var i = 0; e > i; i++) this.putBit(t >>> e - i - 1 & 1)
                }, putBit: function (t) {
                    var e = Math.floor(this.length / 8);
                    this.buffer.length <= e && this.buffer.push(0), t && (this.buffer[e] |= 128 >>> this.length % 8), this.length++
                }
            }, s.prototype = {
                constructor: s, getModuleCount: function () {
                    return this.moduleCount
                }, make: function () {
                    this.getRightType(), this.dataCache = this.createData(), this.createQrcode()
                }, makeImpl: function (t) {
                    this.moduleCount = 4 * this.typeNumber + 17, this.modules = new Array(this.moduleCount);
                    for (var e = 0; e < this.moduleCount; e++) this.modules[e] = new Array(this.moduleCount);
                    this.setupPositionProbePattern(0, 0), this.setupPositionProbePattern(this.moduleCount - 7, 0), this.setupPositionProbePattern(0, this.moduleCount - 7), this.setupPositionAdjustPattern(), this.setupTimingPattern(), this.setupTypeInfo(!0, t), this.typeNumber >= 7 && this.setupTypeNumber(!0), this.mapData(this.dataCache, t)
                }, setupPositionProbePattern: function (t, e) {
                    for (var i = -1; 7 >= i; i++) if (!(-1 >= t + i || this.moduleCount <= t + i)) for (var n = -1; 7 >= n; n++) -1 >= e + n || this.moduleCount <= e + n || (this.modules[t + i][e + n] = i >= 0 && 6 >= i && (0 == n || 6 == n) || n >= 0 && 6 >= n && (0 == i || 6 == i) || i >= 2 && 4 >= i && n >= 2 && 4 >= n ? !0 : !1)
                }, createQrcode: function () {
                    for (var t = 0, e = 0, i = null, n = 0; 8 > n; n++) {
                        this.makeImpl(n);
                        var o = f.getLostPoint(this);
                        (0 == n || t > o) && (t = o, e = n, i = this.modules)
                    }
                    this.modules = i, this.setupTypeInfo(!1, e), this.typeNumber >= 7 && this.setupTypeNumber(!1)
                }, setupTimingPattern: function () {
                    for (var t = 8; t < this.moduleCount - 8; t++) null == this.modules[t][6] && (this.modules[t][6] = t % 2 == 0, null == this.modules[6][t] && (this.modules[6][t] = t % 2 == 0))
                }, setupPositionAdjustPattern: function () {
                    for (var t = f.getPatternPosition(this.typeNumber), e = 0; e < t.length; e++) for (var i = 0; i < t.length; i++) {
                        var n = t[e], o = t[i];
                        if (null == this.modules[n][o]) for (var s = -2; 2 >= s; s++) for (var a = -2; 2 >= a; a++) this.modules[n + s][o + a] = -2 == s || 2 == s || -2 == a || 2 == a || 0 == s && 0 == a ? !0 : !1
                    }
                }, setupTypeNumber: function (t) {
                    for (var e = f.getBCHTypeNumber(this.typeNumber), i = 0; 18 > i; i++) {
                        var n = !t && 1 == (e >> i & 1);
                        this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = n, this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = n
                    }
                }, setupTypeInfo: function (t, e) {
                    for (var i = h[this.errorCorrectLevel] << 3 | e, n = f.getBCHTypeInfo(i), o = 0; 15 > o; o++) {
                        var s = !t && 1 == (n >> o & 1);
                        6 > o ? this.modules[o][8] = s : 8 > o ? this.modules[o + 1][8] = s : this.modules[this.moduleCount - 15 + o][8] = s;
                        var s = !t && 1 == (n >> o & 1);
                        8 > o ? this.modules[8][this.moduleCount - o - 1] = s : 9 > o ? this.modules[8][15 - o - 1 + 1] = s : this.modules[8][15 - o - 1] = s
                    }
                    this.modules[this.moduleCount - 8][8] = !t
                }, createData: function () {
                    var t = new r, e = this.typeNumber > 9 ? 16 : 8;
                    t.put(4, 4), t.put(this.utf8bytes.length, e);
                    for (var i = 0, n = this.utf8bytes.length; n > i; i++) t.put(this.utf8bytes[i], 8);
                    for (t.length + 4 <= 8 * this.totalDataCount && t.put(0, 4); t.length % 8 != 0;) t.putBit(!1);
                    for (; ;) {
                        if (t.length >= 8 * this.totalDataCount) break;
                        if (t.put(s.PAD0, 8), t.length >= 8 * this.totalDataCount) break;
                        t.put(s.PAD1, 8)
                    }
                    return this.createBytes(t)
                }, createBytes: function (t) {
                    for (var e = 0, i = 0, n = 0, o = this.rsBlock.length / 3, s = [], r = 0; o > r; r++) for (var l = this.rsBlock[3 * r + 0], c = this.rsBlock[3 * r + 1], u = this.rsBlock[3 * r + 2], d = 0; l > d; d++) s.push([u, c]);
                    for (var h = new Array(s.length), p = new Array(s.length), m = 0; m < s.length; m++) {
                        var v = s[m][0], g = s[m][1] - v;
                        i = Math.max(i, v), n = Math.max(n, g), h[m] = new Array(v);
                        for (var r = 0; r < h[m].length; r++) h[m][r] = 255 & t.buffer[r + e];
                        e += v;
                        var w = f.getErrorCorrectPolynomial(g), y = new a(h[m], w.getLength() - 1), b = y.mod(w);
                        p[m] = new Array(w.getLength() - 1);
                        for (var r = 0; r < p[m].length; r++) {
                            var T = r + b.getLength() - p[m].length;
                            p[m][r] = T >= 0 ? b.get(T) : 0
                        }
                    }
                    for (var x = new Array(this.totalDataCount), C = 0, r = 0; i > r; r++) for (var m = 0; m < s.length; m++) r < h[m].length && (x[C++] = h[m][r]);
                    for (var r = 0; n > r; r++) for (var m = 0; m < s.length; m++) r < p[m].length && (x[C++] = p[m][r]);
                    return x
                }, mapData: function (t, e) {
                    for (var i = -1, n = this.moduleCount - 1, o = 7, s = 0, a = this.moduleCount - 1; a > 0; a -= 2) for (6 == a && a--; ;) {
                        for (var r = 0; 2 > r; r++) if (null == this.modules[n][a - r]) {
                            var l = !1;
                            s < t.length && (l = 1 == (t[s] >>> o & 1));
                            var c = f.getMask(e, n, a - r);
                            c && (l = !l), this.modules[n][a - r] = l, o--, -1 == o && (s++, o = 7)
                        }
                        if (n += i, 0 > n || this.moduleCount <= n) {
                            n -= i, i = -i;
                            break
                        }
                    }
                }
            }, s.PAD0 = 236, s.PAD1 = 17;
            for (var h = [1, 0, 3, 2], p = {
                PATTERN000: 0,
                PATTERN001: 1,
                PATTERN010: 2,
                PATTERN011: 3,
                PATTERN100: 4,
                PATTERN101: 5,
                PATTERN110: 6,
                PATTERN111: 7
            }, f = {
                PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]],
                G15: 1335,
                G18: 7973,
                G15_MASK: 21522,
                getBCHTypeInfo: function (t) {
                    for (var e = t << 10; f.getBCHDigit(e) - f.getBCHDigit(f.G15) >= 0;) e ^= f.G15 << f.getBCHDigit(e) - f.getBCHDigit(f.G15);
                    return (t << 10 | e) ^ f.G15_MASK
                },
                getBCHTypeNumber: function (t) {
                    for (var e = t << 12; f.getBCHDigit(e) - f.getBCHDigit(f.G18) >= 0;) e ^= f.G18 << f.getBCHDigit(e) - f.getBCHDigit(f.G18);
                    return t << 12 | e
                },
                getBCHDigit: function (t) {
                    for (var e = 0; 0 != t;) e++, t >>>= 1;
                    return e
                },
                getPatternPosition: function (t) {
                    return f.PATTERN_POSITION_TABLE[t - 1]
                },
                getMask: function (t, e, i) {
                    switch (t) {
                        case p.PATTERN000:
                            return (e + i) % 2 == 0;
                        case p.PATTERN001:
                            return e % 2 == 0;
                        case p.PATTERN010:
                            return i % 3 == 0;
                        case p.PATTERN011:
                            return (e + i) % 3 == 0;
                        case p.PATTERN100:
                            return (Math.floor(e / 2) + Math.floor(i / 3)) % 2 == 0;
                        case p.PATTERN101:
                            return e * i % 2 + e * i % 3 == 0;
                        case p.PATTERN110:
                            return (e * i % 2 + e * i % 3) % 2 == 0;
                        case p.PATTERN111:
                            return (e * i % 3 + (e + i) % 2) % 2 == 0;
                        default:
                            throw new Error("bad maskPattern:" + t)
                    }
                },
                getErrorCorrectPolynomial: function (t) {
                    for (var e = new a([1], 0), i = 0; t > i; i++) e = e.multiply(new a([1, m.gexp(i)], 0));
                    return e
                },
                getLostPoint: function (t) {
                    for (var e = t.getModuleCount(), i = 0, n = 0, o = 0; e > o; o++) for (var s = 0, a = t.modules[o][0], r = 0; e > r; r++) {
                        var l = t.modules[o][r];
                        if (e - 6 > r && l && !t.modules[o][r + 1] && t.modules[o][r + 2] && t.modules[o][r + 3] && t.modules[o][r + 4] && !t.modules[o][r + 5] && t.modules[o][r + 6] && (e - 10 > r ? t.modules[o][r + 7] && t.modules[o][r + 8] && t.modules[o][r + 9] && t.modules[o][r + 10] && (i += 40) : r > 3 && t.modules[o][r - 1] && t.modules[o][r - 2] && t.modules[o][r - 3] && t.modules[o][r - 4] && (i += 40)), e - 1 > o && e - 1 > r) {
                            var c = 0;
                            l && c++, t.modules[o + 1][r] && c++, t.modules[o][r + 1] && c++, t.modules[o + 1][r + 1] && c++, (0 == c || 4 == c) && (i += 3)
                        }
                        a ^ l ? s++ : (a = l, s >= 5 && (i += 3 + s - 5), s = 1), l && n++
                    }
                    for (var r = 0; e > r; r++) for (var s = 0, a = t.modules[0][r], o = 0; e > o; o++) {
                        var l = t.modules[o][r];
                        e - 6 > o && l && !t.modules[o + 1][r] && t.modules[o + 2][r] && t.modules[o + 3][r] && t.modules[o + 4][r] && !t.modules[o + 5][r] && t.modules[o + 6][r] && (e - 10 > o ? t.modules[o + 7][r] && t.modules[o + 8][r] && t.modules[o + 9][r] && t.modules[o + 10][r] && (i += 40) : o > 3 && t.modules[o - 1][r] && t.modules[o - 2][r] && t.modules[o - 3][r] && t.modules[o - 4][r] && (i += 40)), a ^ l ? s++ : (a = l, s >= 5 && (i += 3 + s - 5), s = 1)
                    }
                    var u = Math.abs(100 * n / e / e - 50) / 5;
                    return i += 10 * u
                }
            }, m = {
                glog: function (t) {
                    if (1 > t) throw new Error("glog(" + t + ")");
                    return m.LOG_TABLE[t]
                }, gexp: function (t) {
                    for (; 0 > t;) t += 255;
                    for (; t >= 256;) t -= 255;
                    return m.EXP_TABLE[t]
                }, EXP_TABLE: new Array(256), LOG_TABLE: new Array(256)
            }, v = 0; 8 > v; v++) m.EXP_TABLE[v] = 1 << v;
            for (var v = 8; 256 > v; v++) m.EXP_TABLE[v] = m.EXP_TABLE[v - 4] ^ m.EXP_TABLE[v - 5] ^ m.EXP_TABLE[v - 6] ^ m.EXP_TABLE[v - 8];
            for (var v = 0; 255 > v; v++) m.LOG_TABLE[m.EXP_TABLE[v]] = v;
            a.prototype = {
                get: function (t) {
                    return this.num[t]
                }, getLength: function () {
                    return this.num.length
                }, multiply: function (t) {
                    for (var e = new Array(this.getLength() + t.getLength() - 1), i = 0; i < this.getLength(); i++) for (var n = 0; n < t.getLength(); n++) e[i + n] ^= m.gexp(m.glog(this.get(i)) + m.glog(t.get(n)));
                    return new a(e, 0)
                }, mod: function (t) {
                    var e = this.getLength(), i = t.getLength();
                    if (0 > e - i) return this;
                    for (var n = new Array(e), o = 0; e > o; o++) n[o] = this.get(o);
                    for (; n.length >= i;) {
                        for (var s = m.glog(n[0]) - m.glog(t.get(0)), o = 0; o < t.getLength(); o++) n[o] ^= m.gexp(m.glog(t.get(o)) + s);
                        for (; 0 == n[0];) n.shift()
                    }
                    return new a(n, 0)
                }
            }, g = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]], s.prototype.getRightType = function () {
                for (var t = 1; 41 > t; t++) {
                    var e = g[4 * (t - 1) + this.errorCorrectLevel];
                    if (void 0 == e) throw new Error("bad rs block @ typeNumber:" + t + "/errorCorrectLevel:" + this.errorCorrectLevel);
                    for (var i = e.length / 3, n = 0, o = 0; i > o; o++) {
                        var s = e[3 * o + 0], a = e[3 * o + 2];
                        n += a * s
                    }
                    var r = t > 9 ? 2 : 1;
                    if (this.utf8bytes.length + r < n || 40 == t) {
                        this.typeNumber = t, this.rsBlock = e, this.totalDataCount = n;
                        break
                    }
                }
            }, r.prototype = {
                get: function (t) {
                    var e = Math.floor(t / 8);
                    return this.buffer[e] >>> 7 - t % 8 & 1
                }, put: function (t, e) {
                    for (var i = 0; e > i; i++) this.putBit(t >>> e - i - 1 & 1)
                }, putBit: function (t) {
                    var e = Math.floor(this.length / 8);
                    this.buffer.length <= e && this.buffer.push(0), t && (this.buffer[e] |= 128 >>> this.length % 8), this.length++
                }
            }, c.AMUI.qrcode = d, e.exports = d
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 53: [function (t, e) {
        (function (i) {
            "use strict";

            function n() {
                try {
                    return l in r && r[l]
                } catch (t) {
                    return !1
                }
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null;
            t("./core");
            var s, a = {}, r = window, l = "localStorage";
            a.disabled = !1, a.version = "1.3.17", a.set = function () {
            }, a.get = function () {
            }, a.has = function (t) {
                return void 0 !== a.get(t)
            }, a.remove = function () {
            }, a.clear = function () {
            }, a.transact = function (t, e, i) {
                null == i && (i = e, e = null), null == e && (e = {});
                var n = a.get(t, e);
                i(n), a.set(t, n)
            }, a.getAll = function () {
            }, a.forEach = function () {
            }, a.serialize = function (t) {
                return JSON.stringify(t)
            }, a.deserialize = function (t) {
                if ("string" != typeof t) return void 0;
                try {
                    return JSON.parse(t)
                } catch (e) {
                    return t || void 0
                }
            }, n() && (s = r[l], a.set = function (t, e) {
                return void 0 === e ? a.remove(t) : (s.setItem(t, a.serialize(e)), e)
            }, a.get = function (t, e) {
                var i = a.deserialize(s.getItem(t));
                return void 0 === i ? e : i
            }, a.remove = function (t) {
                s.removeItem(t)
            }, a.clear = function () {
                s.clear()
            }, a.getAll = function () {
                var t = {};
                return a.forEach(function (e, i) {
                    t[e] = i
                }), t
            }, a.forEach = function (t) {
                for (var e = 0; e < s.length; e++) {
                    var i = s.key(e);
                    t(i, a.get(i))
                }
            });
            try {
                var c = "__storeJs__";
                a.set(c, c), a.get(c) != c && (a.disabled = !0), a.remove(c)
            } catch (u) {
                a.disabled = !0
            }
            a.enabled = !a.disabled, o.AMUI = o.AMUI || {}, o.AMUI.store = a, e.exports = a
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}], 54: [function (t, e) {
        (function (i) {
            "use strict";

            function n() {
                var t = o('[data-am-widget="wechatpay"]');
                return a ? void t.on("click", ".am-wechatpay-btn", function (t) {
                    t.preventDefault();
                    var e = s.utils.parseOptions(o(this).parent().data("wechatPay"));
                    return window.wx ? void wx.checkJsApi({
                        jsApiList: ["chooseWXPay"], success: function (t) {
                            t.checkResult.chooseWXPay ? wx.chooseWXPay(e) : alert("微信版本不支持支付接口或没有开启！")
                        }, fail: function () {
                            alert("调用 checkJsApi 接口时发生错误!")
                        }
                    }) : void alert("没有微信 JS SDK")
                }) : (t.hide(), !1)
            }

            var o = "undefined" != typeof window ? window.jQuery : "undefined" != typeof i ? i.jQuery : null,
                s = t("./core"), a = window.navigator.userAgent.indexOf("MicroMessenger") > -1, r = n;
            o(document).on("ready", r), e.exports = o.AMUI.pay = {VERSION: "1.0.0", init: r}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"./core": 4}]
}, {}, [2]);


function LoginCheck() {
    var LoginCheck = false;
    if ($("#User").val() === "" || $("#Pwd").val() === "") {
        alert("用户名或密码不能为空!");
        return false;
    }
    return true;
}

function jumpMenu(s1, s2, s3) {
    var pageURL = $('#ipage option:selected').val();
    window.location.href = pageURL;
} 



